كيفية استخدام FastAPI لبناء خدمات API عالية الأداء

2/20/2026
4 min read

كيفية استخدام FastAPI لبناء خدمات API عالية الأداء

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

الخطوة الأولى: إعداد البيئة

يجب عليك التأكد من تثبيت Python 3.6+ في بيئة التطوير الخاصة بك. إذا لم يكن مثبتًا بعد، يمكنك زيارة الموقع الرسمي لـ Python لتنزيله وتثبيته.

تثبيت FastAPI و Uvicorn

لا يوفر FastAPI الخدمة بنفسه، بل يحتاج إلى خادم ASGI لاستضافته. هنا نستخدم Uvicorn، وهو خادم ASGI عالي الأداء. يمكنك استخدام الأمر التالي لتثبيت FastAPI و Uvicorn:

pip install fastapi uvicorn

الخطوة الثانية: بناء API الأساسية

دعنا ننشئ تطبيق FastAPI بسيط.

إنشاء ملف التطبيق

في دليل مشروعك، أنشئ ملف Python، مثل main.py، ثم اكتب فيه الكود التالي:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def read_root():
    return {"message": "Hello, World!"}

في الكود أعلاه، قمنا أولاً باستيراد FastAPI وأنشأنا مثيلًا app. ثم، قمنا بتعريف مسار GET، وعند الوصول إلى المسار الجذري /، يتم إرجاع استجابة JSON بسيطة.

تشغيل الخادم

قم بتشغيل خادم FastAPI الخاص بك باستخدام الأمر التالي:

uvicorn main:app --reload
  • main: يشير إلى اسم الملف، بدون لاحقة .py.
  • app: يشير إلى مثيل FastAPI.
  • --reload: في وضع التطوير، يتم إعادة تشغيل الخادم تلقائيًا عند تغيير الملفات.

الخطوة الثالثة: تعريف المسارات ونماذج البيانات

لبناء API معقد، تحتاج إلى استخدام Pydantic لتعريف نماذج البيانات.

إنشاء نموذج البيانات

أضف المحتوى التالي إلى main.py:

from pydantic import BaseModel

class Item(BaseModel):
    name: str
    price: float
    is_available: bool = True

هذا الكود يستخدم Pydantic لإنشاء نموذج بيانات Item، الذي يحتوي على ثلاثة خصائص: اسم المنتج، السعر، وما إذا كان متاحًا.

إضافة مسار جديد

بعد ذلك، يمكننا تعريف مسار POST جديد لاستقبال بيانات من نوع Item:

@app.post("/items/")
async def create_item(item: Item):
    return {"item_name": item.name, "item_price": item.price}

في هذا المسار، سيقوم FastAPI بالتحقق تلقائيًا من البيانات المدخلة وتعيينها إلى نموذج Item.

الخطوة الرابعة: توليد الوثائق تلقائيًا

واحدة من أكبر مزايا FastAPI هي القدرة على توليد وثائق API تلقائيًا. يمكنك عرضها من خلال زيارة العناوين التالية:

  • Swagger UI: http://127.0.0.1:8000/docs
  • ReDoc: http://127.0.0.1:8000/redoc

في هذه الوثائق المولدة، يمكنك اختبار API بشكل تفاعلي، ورؤية تنسيقات الطلبات والاستجابات لكل مسار.

الخطوة الخامسة: إضافة المصادقة

في التطبيقات العملية، تعتبر المصادقة جزءًا مهمًا. دعنا نضيف مصادقة بسيطة تعتمد على الأدوار.

إضافة تبعيات الأمان

استخدم طريقة Depends من FastAPI وOAuth2PasswordBearer لتنفيذ المصادقة:

from fastapi import Depends, HTTPException, status
from fastapi.security import OAuth2PasswordBearer

oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")

async def fake_decode_token(token):
    return {"sub": token}

async def get_current_user(token: str = Depends(oauth2_scheme)):
    user = fake_decode_token(token)
    if user is None:
        raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Invalid authentication credentials")
    return user

حماية المسارات

بعد ذلك، يمكنك إضافة المصادقة إلى المسارات التي تحتاج إلى حماية:

@app.get("/users/me")
async def read_users_me(current_user: dict = Depends(get_current_user)):
    return current_user

الخطوة السادسة: نشر تطبيق FastAPI

عندما تنتهي من التطوير، قد تحتاج إلى نشر التطبيق على خادم سحابي. يمكنك اختيار استخدام Docker للنشر.

إنشاء Dockerfile

في دليل المشروع، أنشئ ملفًا باسم Dockerfile وأدخل المحتوى التالي:

FROM tiangolo/uvicorn-gunicorn-fastapi:python3.8

COPY ./app /app

بناء صورة Docker

في الطرفية الخاصة بك، استخدم الأمر التالي لبناء صورة Docker:

docker build -t myfastapiapp .

تشغيل حاوية Docker

قم بتشغيل تطبيق FastAPI الخاص بك:

docker run -d --name fastapi -p 80:80 myfastapiapp

الخلاصة

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

Published in Technology

You Might Also Like

📝
Technology

Claude Code Buddy تعديل الدليل: كيفية الحصول على حيوان أليف أسطوري لامع

Claude Code Buddy تعديل الدليل: كيفية الحصول على حيوان أليف أسطوري لامع في 1 أبريل 2026، أطلقت شركة Anthropic بهدوء ميزة...

أوبسيديان أطلقت Defuddle، ورفعت أوبسيديان ويب كليبر إلى مستوى جديدTechnology

أوبسيديان أطلقت Defuddle، ورفعت أوبسيديان ويب كليبر إلى مستوى جديد

أوبسيديان أطلقت Defuddle، ورفعت أوبسيديان ويب كليبر إلى مستوى جديد لطالما أحببت الفكرة الأساسية لأوبسيديان: الأولوية ال...

OpenAI فجأة تعلن عن "ثلاث في واحد": دمج المتصفح + البرمجة + ChatGPT، والاعتراف داخليًا بأن العام الماضي كان خاطئًاTechnology

OpenAI فجأة تعلن عن "ثلاث في واحد": دمج المتصفح + البرمجة + ChatGPT، والاعتراف داخليًا بأن العام الماضي كان خاطئًا

OpenAI فجأة تعلن عن "ثلاث في واحد": دمج المتصفح + البرمجة + ChatGPT، والاعتراف داخليًا بأن العام الماضي كان خاطئًا في ل...

2026، لا تضغط على نفسك لتكون "منضبطًا"! قم بهذه 8 أشياء بسيطة، وستأتي الصحة بشكل طبيعيHealth

2026، لا تضغط على نفسك لتكون "منضبطًا"! قم بهذه 8 أشياء بسيطة، وستأتي الصحة بشكل طبيعي

2026، لا تضغط على نفسك لتكون "منضبطًا"! قم بهذه 8 أشياء بسيطة، وستأتي الصحة بشكل طبيعي بدأت سنة جديدة، هل حققت الأهداف ...

الأمهات اللواتي يبذلن جهدًا لفقدان الوزن ولا ينجحن، بالتأكيد يعانين هناHealth

الأمهات اللواتي يبذلن جهدًا لفقدان الوزن ولا ينجحن، بالتأكيد يعانين هنا

[[HTMLPLACEHOLDER0]] [[HTMLPLACEHOLDER1]] [[HTMLPLACEHOLDER2]] [[HTMLPLACEHOLDER3]] [[HTMLPLACEHOLDER4]] [[HTMLPLACEHO...

📝
Technology

دليل تشغيل متصفح الذكاء الاصطناعي على مدار 24 ساعة

دليل تشغيل متصفح الذكاء الاصطناعي على مدار 24 ساعة هذا الدليل يشرح كيفية إعداد بيئة متصفح ذكاء اصطناعي مستقرة وطويلة الأ...