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

في هذا المنشور، سوف نستكشف كيفية تنفيذ عمليات 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 لـ async للعمليات غير المتزامنة لتحسين الأداء وقدرات التزامن.
- تأكد من أمان API باستخدام آليات مصادقة وتفويض مناسبة. استخدم نماذج Pydantic للتحقق من صحة البيانات وتسلسلها للحفاظ على تناسق البيانات والتعامل مع الأخطاء بفعالية. نفذ CORS لمشاركة الموارد عبر المواقع عند الحاجة.
- قم بإنشاء اختبارات شاملة وحدة ودمج لضمان موثوقية ووظيفة API. تعامل مع الأخطاء بأسلوب أنيق باستخدام معالجة استثناءات FastAPI واستجابات الأخطاء المخصصة. راقب الأداء باستخدام السجلات والمحللات، واحتفظ بـ FastAPI واعتماداته محدثة لإصلاح الأخطاء وإضافة ميزات جديدة.
باتباع هذه الممارسات، يمكنك تطوير واجهات API قوية وفعالة باستخدام FastAPI، مما يسهل عملية التطوير والنشر الخاصة بك.