حول المحتوى:
اكتشف كيفية استخدام Swagger لتوثيق RESTful APIs بكفاءة وسهولة. تعرف على مكوناته، وكيفية دمجه مع Django REST Framework وFastAPI، بالإضافة إلى أهم ميزاته التي تسهل تجربة المطورين.
مع تزايد استخدام واجهات برمجة التطبيقات (APIs) في تطوير التطبيقات، أصبح من الضروري وجود أدوات تساعد في توثيقها واختبارها بسهولة. Swagger هي واحدة من أشهر الأدوات المستخدمة في توثيق RESTful APIs، حيث توفر واجهة تفاعلية تسهل على المطورين استكشاف وتجربة واجهات API مباشرة دون الحاجة إلى كتابة أكواد إضافية.
في هذا المقال، سنتعرف على Swagger، مكوناته، كيفية استخدامه مع Django REST Framework (DRF) وFastAPI، وأهم ميزاته التي تجعل تطوير واجهات API أكثر كفاءة وتنظيمًا.
Swagger هو إطار عمل مفتوح المصدر يُستخدم لإنشاء وتوثيق RESTful APIs بشكل تفاعلي. يعتمد على OpenAPI Specification (OAS)، مما يجعله أداة قياسية لإنشاء توثيق متكامل لواجهات API.
يسمح Swagger للمطورين بتحديد هيكل API باستخدام ملفات YAML أو JSON، مما يسهل فهم كيفية عمل الواجهة البرمجية، أنواع الطلبات المدعومة، المعاملات، ونماذج الاستجابات.
يتكون Swagger من عدة أدوات تساعد في إنشاء وتوثيق واختبار واجهات API، ومن أهمها:
Swagger UI
Swagger Editor
Swagger Codegen
Swagger Hub
استخدام Swagger يوفر العديد من المزايا، من بينها:
✔ توثيق تلقائي: يقلل الحاجة إلى كتابة مستندات API يدويًا.
✔ تحسين تجربة المطورين: يوفر واجهة سهلة لفهم كيفية استخدام الواجهات البرمجية.
✔ التوافق مع معايير OpenAPI: يسهل التكامل مع أدوات أخرى تعتمد على المواصفات نفسها.
✔ إمكانية اختبار API: يتيح تجربة الطلبات والإجابات دون الحاجة إلى أدوات خارجية.
✔ توليد أكواد جاهزة: يمكن استخدامه لإنشاء أكواد Client وServer للعديد من اللغات.
إذا كنت تستخدم Django REST Framework، فيمكنك إضافة Swagger بسهولة باستخدام مكتبة drf-yasg.
قم بتثبيت الحزمة باستخدام pip:
pip install drf-yasg
urls.py
أضف التكوينات التالية لإنشاء صفحة توثيق Swagger:
from django.urls import path, re_path
from rest_framework import permissions
from drf_yasg.views import get_schema_view
from drf_yasg import openapi
schema_view = get_schema_view(
openapi.Info(
title="API Documentation",
default_version="v1",
description="توثيق API باستخدام Swagger",
terms_of_service="https://www.google.com/policies/terms/",
contact=openapi.Contact(email="[email protected]"),
license=openapi.License(name="BSD License"),
),
public=True,
permission_classes=(permissions.AllowAny,),
)
urlpatterns = [
path('swagger/', schema_view.with_ui('swagger', cache_timeout=0), name='swagger-ui'),
path('redoc/', schema_view.with_ui('redoc', cache_timeout=0), name='redoc-ui'),
]
بعد تشغيل السيرفر، يمكنك الوصول إلى التوثيق عبر:
http://127.0.0.1:8000/swagger/
http://127.0.0.1:8000/redoc/
إذا كنت تعمل بـ FastAPI، فإن Swagger UI مدمج بشكل افتراضي، ولا تحتاج إلى إعدادات إضافية.
from fastapi import FastAPI
app = FastAPI()
@app.get("/items/{item_id}", summary="الحصول على عنصر", description="إرجاع عنصر محدد عبر معرفه.")
def read_item(item_id: int):
return {"item_id": item_id, "name": "Item Name"}
بعد تشغيل التطبيق، يمكنك الوصول إلى التوثيق عبر:
http://127.0.0.1:8000/docs
http://127.0.0.1:8000/redoc
يمكنك تخصيص التوثيق بإضافة أوصاف، معلمات، ونماذج استجابة. على سبيل المثال:
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class Item(BaseModel):
name: str
description: str
price: float
available: bool
@app.post("/items/", response_model=Item, summary="إضافة عنصر جديد")
def create_item(item: Item):
return item
هذا الكود سيظهر في Swagger UI مع تفاصيل عن الطلبات والاستجابات المتاحة.
Swagger هو أداة قوية وضرورية لأي مطور يعمل على RESTful APIs، حيث يوفر توثيقًا ديناميكيًا يساعد في فهم واختبار الواجهات البرمجية بسهولة. سواء كنت تستخدم Django REST Framework أو FastAPI، فإن دمج Swagger في مشروعك سيجعل عملية التطوير أكثر كفاءة وتنظيمًا.
إذا كنت ترغب في تجربة Swagger في مشروعك، جرب الخطوات المذكورة أعلاه وابدأ في توثيق APIs الخاصة بك باحترافية!
اكتشف كيفية استخدام Swagger لتوثيق RESTful APIs بكفاءة وسهولة. تعرف على مكوناته، وكيفية دمجه مع Django REST Framework وFastAPI، بالإضافة إلى أهم ميزاته التي تسهل تجربة المطورين.
مساحة اعلانية
المكتبة في لغة البرمجة هي مجموعة من الأوامر البرمجية المجهزة مسبقا لتنفيذ مهام محددة، تمكنك هذه المكاتب من التعامل معها ضمن مشروعك.