عمليات CRUD ضرورية في أي تطبيق ويب يتضمن تخزين البيانات واسترجاعها. تسمح هذه العمليات للمستخدمين بإنشاء سجلات جديدة، واسترجاع السجلات الموجودة، وتحديث السجلات الحالية، وحذف السجلات من قاعدة البيانات.
يسهل FastAPI تنفيذ عمليات CRUD من خلال توفير طريقة بسيطة وسهلة لتعريف نقاط نهاية API ومعالجة طلبات HTTP. يستفيد من تلميحات نوع Python لتوليد وثائق API تفاعلية تلقائيًا وإجراء تحقق من الصحة، مما يجعلها أداة قوية لبناء APIs قوية ومُوثقة بشكل جيد.

في هذه المنشور، سنستكشف كيف يمكن تنفيذ عمليات CRUD بسرعة باستخدام FastAPI. سنبدأ بإعداد FastAPI وقاعدة البيانات، ثم نتابع لإنشاء نقاط نهاية API لعمليات CRUD. وسنتناول أيضًا تنفيذ عمليات الإنشاء والقراءة والتحديث والحذف، بالإضافة إلى اختبار والتحقق من صحة هذه العمليات. لذا دعونا نبدأ ونتعمق في عالم FastAPI وعمليات CRUD!
ما هي CRUD في FastAPI؟
في FastAPI، تشير CRUD إلى العمليات الأساسية التي يمكن تنفيذها على البيانات في قاعدة بيانات أو نظام تخزين بيانات. تشير CRUD إلى الإنشاء والقراءة والتحديث والحذف، وتمثل الوظائف الأساسية التي تعتبر ضرورية لإدارة البيانات في معظم التطبيقات.

إليك شرح تفصيلي لعمليات CRUD في FastAPI:
- الإنشاء (C): تتعلق هذه العملية بإضافة بيانات جديدة إلى قاعدة البيانات. في FastAPI، يمكنك إنشاء بيانات من خلال إرسال طلب POST إلى نقطة النهاية المناسبة. على سبيل المثال، لإضافة مستخدم جديد إلى النظام، سترسل طلب POST إلى نقطة نهاية إنشاء المستخدم مع تفاصيل المستخدم ذات الصلة في جسم الطلب.
- القراءة (R): تتعلق عملية القراءة باسترجاع البيانات الموجودة من قاعدة البيانات. في FastAPI، يمكنك إجراء عمليات القراءة باستخدام طلبات GET. على سبيل المثال، إذا كنت تريد استرجاع جميع المستخدمين أو تفاصيل مستخدم محدد، سترسل طلب GET إلى نقطة النهاية الخاصة بذلك.
- التحديث (U): تتيح لك هذه العملية تعديل البيانات الموجودة في قاعدة البيانات. في FastAPI، يمكنك تحديث البيانات باستخدام طلبات PUT أو PATCH. يستخدم طلب PUT لتحديث المورد بالكامل، بينما يستخدم PATCH لتعديل الحقول المحددة من المورد. على سبيل المثال، لتحديث معلومات مستخدم، سترسل طلب PUT أو PATCH إلى نقطة نهاية المستخدم مع التفاصيل المحدثة.
- الحذف (D): تتضمن عملية الحذف إزالة البيانات من قاعدة البيانات. في FastAPI، يمكنك حذف البيانات باستخدام طلبات DELETE. على سبيل المثال، لحذف مستخدم من النظام، سترسل طلب DELETE إلى نقطة نهاية المستخدم مع معرف المستخدم أو مفتاحه الفريد.
كيفية إنشاء عمليات CRUD بسرعة باستخدام FastAPI
لتنفيذ وظيفة CRUD باستخدام FastAPI، اتبع هذه الخطوات:
الخطوة 1: تثبيت FastAPI: تأكد من تثبيت Python على نظامك، ونفذ الأمر التالي في سطر الأوامر لتثبيت FastAPI:
pip install fastapi
الخطوة 2: إنشاء تطبيق FastAPI: أنشئ ملف Python جديد (على سبيل المثال، main.py) واستورد الوحدات والمكتبات المطلوبة:
from fastapi import FastAPI
from pydantic import BaseModel
from typing import List
app = FastAPI()
الخطوة 3: تعريف نماذج البيانات: استخدم Pydantic لتعريف نماذج البيانات. على سبيل المثال:
class Item(BaseModel):
id: int
name: str
price: float
الخطوة 4: إنشاء مسارات وموارد CRUD: استخدم FastAPI لإنشاء مسارات ووظائف التعامل المقابلة لعمليات CRUD. إليك مثال:
items = []
@app.get("/items", response_model=List[Item])
async def read_items():
return items
@app.post("/items", response_model=Item)
async def create_item(item: Item):
items.append(item)
return item
@app.put("/items/{item_id}", response_model=Item)
async def update_item(item_id: int, item: Item):
items[item_id] = item
return item
@app.delete("/items/{item_id}")
async def delete_item(item_id: int):
del items[item_id]
return {"message": "تم حذف العنصر"}
الخطوة 5: تشغيل التطبيق: لتشغيل تطبيق FastAPI واختبار وظيفة APIRouter، استخدم خادم ASGI مثل uvicorn. تأكد من أنك قد قمت بتثبيت uvicorn:
pip install uvicorn
في محرر IDE الخاص بك، افتح الطرفية، وانتقل إلى الدليل حيث تم حفظ ملف main.py، ونفذ الأمر التالي لبدء التطبيق:
uvicorn main:app --reload
سيؤدي ذلك إلى بدء تشغيل تطبيق FastAPI على المنفذ الافتراضي (عادةً 8000) مع تمكين إعادة التحميل التلقائي، لذا سيتم إعادة تحميل التطبيق تلقائيًا عند إجراء تغييرات على الكود.
الخطوة 6: اختبار عملية CRUD
استخدم أداة عميل HTTP (مثل cURL أو Apidog) لإرسال الطلبات واختبار وظائف الإنشاء والقراءة والتحديث والحذف. إليك بعض الطلبات النموذجية:
- إنشاء عنصر جديد: أرسل طلب POST مع جسم الطلب لإنشاء عنصر جديد.
POST http://localhost:8000/items
{
"id": 1,
"name": "تفاحة",
"price": 0.5
}

- الحصول على جميع العناصر: أرسل طلب GET لاسترجاع جميع العناصر.
GET http://localhost:8000/items

- تحديث عنصر: أرسل طلب PUT مع جسم الطلب لتحديث عنصر.
GET http://localhost:8000/items

- حذف عنصر: أرسل طلب DELETE لحذف عنصر.
DELETE http://localhost:8000/items/1

أخيرًا، يمكننا كتابة اختبارات لعملية الحذف في Apidog. يمكننا محاكاة طلب DELETE إلى نقطة النهاية للحذف والتحقق مما إذا كان رمز حالة الاستجابة هو 200 (مما يدل على حذف ناجح). ثم يمكننا محاولة استرجاع البيانات المحذوفة من قاعدة البيانات والتأكد من أنها لا توجد.
من خلال كتابة هذه الاختبارات، يمكننا التأكد من أن عمليات CRUD الخاصة بنا تعمل بشكل صحيح وتعالج سيناريوهات مختلفة، مثل الإدخال غير الصالح أو البيانات غير الموجودة.
نصائح إضافية
استخدم دعم IDE مثل Visual Studio Code لتحسين كفاءة التطوير مع تكملة الكود، والتحقق من الأخطاء، وميزات تصحيح الأخطاء.
- عند استخدام FastAPI، استفد من دعم IDE مثل Visual Studio Code لتحسين كفاءة التطوير مع تكملة الكود، والتحقق من الأخطاء، وميزات تصحيح الأخطاء.
- نظم قاعدة التعليمات البرمجية الخاصة بك عن طريق فصل المسارات ووظائف التعامل إلى وحدات مختلفة، مما يعزز القابلية للصيانة وقابلية التوسع. استخدم دعم FastAPI غير المتزامن للعمليات غير المتزامنة لتعزيز الأداء وقدرات التزامن.
- تأكد من أمان API مع آليات المصادقة والتفويض المناسبة. استخدم نماذج Pydantic للتحقق من صحة البيانات والتسلسل للحفاظ على تناسق البيانات ومعالجة الأخطاء بشكل فعال. نفذ CORS لمشاركة الموارد عبر الأصول عند الحاجة.
- أنشئ اختبارات وحدة شاملة واختبارات تكامل لضمان موثوقية وفعالية API. تعامل مع الأخطاء بشكل لطيف باستخدام معالجة استثناءات FastAPI واستجابات الأخطاء المخصصة. راقب الأداء مع السجلات والمحللات، وابق FastAPI وتبعياتها محدثة للإصلاحات والميزات الجديدة.
من خلال اتباع هذه الممارسات، يمكنك تطوير APIs قوية وفعالة باستخدام FastAPI، مما يبسط عملية التطوير والنشر الخاصة بك.