في الدروس السابقة، بنينا API كامل لإدارة المهام باستخدام FastAPI، وربطناه بقاعدة بيانات SQLite، وأضفنا التحقق من البيانات ومعالجة الأخطاء. لكن كيف نضمن أن كل شيء يعمل كما ينبغي؟ هنا يأتي دور اختبار الـ API.
اختبار الـ API هو عملية التحقق من أن كل نقطة نهاية (endpoint) في تطبيقك تستجيب بالشكل الصحيح، وتتعامل مع البيانات بشكل سليم، وتتعامل مع الأخطاء كما هو متوقع. بدون اختبار، قد تكتشف مشاكل بعد أن يصبح التطبيق في الإنتاج، مما قد يسبب مشاكل للمستخدمين.
في هذا الدرس، سنتعلم طريقتين أساسيتين لاختبار الـ API الخاص بنا:
أولاً، تأكد من أن مشروع FastAPI الخاص بك يعمل. افتح التيرمينال في مجلد المشروع، وقم بتشغيل الخادم باستخدام الأمر التالي:
uvicorn main:app --reload
سيبدأ الخادم على المنفذ 8000 افتراضياً. اتركه يعمل في الخلفية.
Swagger UI هو أحد أقوى مميزات FastAPI. بمجرد تشغيل الخادم، يمكنك الوصول إليه عبر الرابط التالي في المتصفح:
http://127.0.0.1:8000/docs
ستظهر لك واجهة جميلة تعرض جميع endpoints المتاحة في مشروعك. كل endpoint له زر "Try it out" يسمح لك بتجربته مباشرة.
POST /tasks.{
"title": "اختبار Swagger",
"description": "هذه مهمة تجريبية",
"completed": false
}
201 Created مع بيانات المهمة الجديدة.curl هي أداة سطر أوامر موجودة في معظم أنظمة التشغيل (Linux, macOS, Windows). تسمح لك بإرسال طلبات HTTP دون الحاجة إلى متصفح.
افتح نافذة تيرمينال جديدة (مع ترك الخادم يعمل في النافذة الأولى)، واكتب الأمر التالي:
curl -X POST "http://127.0.0.1:8000/tasks" \
-H "Content-Type: application/json" \
-d '{"title": "اختبار curl", "description": "مهمة من التيرمينال", "completed": false}'
سيظهر الرد مباشرة في التيرمينال. يجب أن ترى شيئاً مثل:
{"id":1,"title":"اختبار curl","description":"مهمة من التيرمينال","completed":false}
جلب جميع المهام (GET):
curl -X GET "http://127.0.0.1:8000/tasks"
جلب مهمة محددة (GET by ID):
curl -X GET "http://127.0.0.1:8000/tasks/1"
تحديث مهمة (PUT):
curl -X PUT "http://127.0.0.1:8000/tasks/1" \
-H "Content-Type: application/json" \
-d '{"title": "مهمة محدثة", "description": "تم التحديث", "completed": true}'
حذف مهمة (DELETE):
curl -X DELETE "http://127.0.0.1:8000/tasks/1"
uvicorn وأنه لا توجد أخطاء في التيرمينال.http://127.0.0.1:8000 وليس https.") داخل JSON، وأن الهيكل صحيح.-H "Content-Type: application/json".uvicorn main:app --reload --port 8001.التمرين:
completed: true).تلميح: يمكنك استخدام الخيار -w "\n%{http_code}" مع curl لرؤية رمز الحالة.
في هذا الدرس، تعلمنا كيف نختبر API الخاص بنا بطريقتين: باستخدام Swagger UI (الواجهة الرسومية) و curl (سطر الأوامر). كلتا الطريقتين ضروريتان لأي مطور API. Swagger رائع للاستكشاف السريع والتوثيق، بينما curl مثالي للأتمتة والاختبار في بيئات الإنتاج. في الدرس القادم، سنقوم ببناء مشروع Tasks API النهائي وتجهيزه للتطوير المستقبلي.
جاري تحميل التقييمات...