با شما در این روزهای سخت همراهیم (۴۰٪ تخفیف کمپین همدلی)
۰ ثانیه
۰ دقیقه
۰ ساعت
۰ دیدگاه نظر محمدرسول اصغری
فریم ورک FastAPI چیست؟ (نصب و راه اندازی و آموزش FastAPI)
سرفصل‌های مقاله
  • FastAPI چیست؟
  • کاربردهای FastAPI
  • راه اندازی و نصب FastAPI: گام به گام
  • آموزش FastAPI
  • مزایا و معایب فریم ورک FastAPI
  • احراز هویت در FastAPI
  • تست نویسی با FastAPI
  • جمع بندی

در دنیای برنامه نویسی وب، فریم ورک‌ها نقش مهمی در تسهیل و تسریع فرآیند توسعه برنامه‌ها ایفا می‌کنند. در این مقاله، قصد داریم FastAPI را مورد بررسی قرار دهیم؛ یکی از پیشرفته‌ترین فریم ورک‌های Python که به دلیل سرعت بالا و ویژگی‌های امنیتی قابل توجه اش، محبوبیت زیادی کسب کرده است. این چارچوب به عنوان ابزاری نوین، توانایی‌های فراوانی را برای توسعه دهندگان فراهم می‌آورد که به آن‌ها کمک می‌کند تا با کارایی بهتر و سرعت بیشتری به اهداف خود برسند.

FastAPI چیست؟

FastAPI یک فریم ورک (Framework) مدرن و سریع برای توسعه API‌ها با استفاده از Python است. این فریم ورک بر اساس استانداردهای Open API و JSON Schema طراحی شده و امکان ایجاد مستندات خودکار و بهره گیری از Type Hints را فراهم می‌کند. این تکنولوژی بر سرعت و دقت در توسعه API تمرکز دارد و از Asynchronous Programming پشتیبانی می‌کند، که باعث بهبود عملکرد در زمان اجرا می‌شود.

تنوع کاربردهای این چارچوب از ساخت API‌های ساده گرفته تا پیاده سازی معماری‌های میکروسرویسی پیچیده، این فریم ورک را به یک انتخاب محبوب در بین توسعه دهندگان تبدیل کرده است. استفاده از فریم ورک FastAPI نه تنها به افزایش سرعت توسعه کمک می‌کند، بلکه بهبود کیفیت نهایی محصول را نیز تضمین می‌کند. در ادامه به بررسی برخی از مهم‌ترین و پرکاربردترین موارد استفاده از این فریم ورک می‌پردازیم.

کاربردهای FastAPI

این فریم ورک کاربردی با ویژگی‌های منحصر به فردش، گزینه قدرتمندی برای توسعه انواع اپلیکیشن‌های وب و API است. این فریم ورک کارآمد گستره وسیعی از کاربردها را پوشش می‌دهد و مزایای بی نظیری را برای توسعه دهندگان به ارمغان می‌آورد. از جمله کاربردهای مهمی که این چارچوب توسعه وب دارد، عبارتند از:

ساخت سریع API‌های با عملکرد بالا

FastAPI به شما امکان می‌دهد تا API‌های با کارایی بالا را به سرعت توسعه دهید. این فریم ورک برای اپلیکیشن‌های موبایل، وب سایت‌ها و سیستم‌های مبتنی بر داده بسیار مناسب است. استفاده از FastAPI در این زمینه‌ها به دلیل سرعت بالا در پردازش درخواست‌ها و کاهش تأخیر، تجربه کاربری بهتری را فراهم می‌کند.

پشتیبانی از کد نویسی غیر همزمان(Asynchronous)

با پشتیبانی از Asynchronous Code، برای سناریوهایی که نیاز به پردازش همزمان چندین درخواست است، ایده آل می‌باشد. این ویژگی به خصوص در محیط هایی که ترافیک بالای شبکه دارند، مفید است و به بهینه سازی استفاده از منابع سرور کمک می‌کند.

کدنویسی ساده و سریع

یکی از برجسته‌ترین ویژگی هایش، سادگی و سرعت بالا در توسعه است. توسعه دهندگان می‌توانند با استفاده از این فریم ورک به راحتی API‌های قدرتمندی بسازند که کمترین خطا را دارند، به لطف استفاده از Type Hints و سایر قابلیت‌های Python.

توسعه وب اپلیکیشن‌های تعاملی

این فریم ورک را می‌توان در کنار فریم ورک‌های فرانت اند مدرن مانند React یا Angular برای ساخت وب اپلیکیشن‌های تعاملی و پویا استفاده کرد. این ترکیب به توسعه دهندگان امکان می‌دهد تا رابط کاربری غنی و واکنش گرا را با بک اند قدرتمندی که توسط FastAPI فراهم شده، ایجاد کنند.

ساخت میکروسرویس ها

FastAPI با قابلیت هایی مانند پشتیبانی از Docker و Kubernetes، برای ساخت و مدیریت میکروسرویس‌ها بسیار مناسب است. این فریم ورک به توسعه دهندگان امکان می‌دهد تا سیستم‌های پیچیده و مقیاس پذیر را به آسانی توسعه دهند و مدیریت کنند.

راه اندازی و نصب FastAPI: گام به گام

برای شروع کار و استفاده از قابلیت‌های سریع و انعطاف پذیر آن، نصب این فریم ورک روی محیط توسعه شما چند مرحله ساده را شامل می‌شود. در ادامه، مراحل نصب و راه اندازی را به ترتیب و به صورت گام به گام توضیح می‌دهیم.

گام اول: نصب Python

FastAPI بر پایه زبان برنامه نویسی Python استوار است، بنابراین اولین قدم، اطمینان از نصب Python نسخه 3.6 یا بالاتر است. Python را می‌توانید از وب سایت رسمی Python به آدرس python.org دانلود و نصب کنید.

گام دوم: ایجاد محیط مجازی

پیش از نصب فریم ورک و وابستگی‌های آن، توصیه می‌شود که یک محیط مجازی Python ایجاد کنید. این کار از تداخل بسته‌های نصب شده با سایر پروژه‌ها جلوگیری می‌کند. برای ایجاد محیط مجازی می‌توانید از دستورات زیر استفاده کنید:

python -m venv fastapi-env

سپس، محیط مجازی را فعال کنید.

در ویندوز:

fastapi-env\Scripts\activate

در mac OS و Linux:

source fastapi-env/bin/activate

گام سوم: نصب FastAPI و Uvicorn

با محیط مجازی (virtual environment) فعال، می‌توانید FastAPI و Uvicorn را که یک سرور Asynchronous Server Gateway Interface برای اجرای اپلیکیشن‌های FastAPI است با استفاده از ابزار مدیریت بسته‌های پایتون (pip) نصب کنید:

pip install fastapi[all]

این دستور، تمامی کتابخانه‌ها و وابستگی‌های لازم، از جمله uvicorn که سرور ASGI برای اجرای اپلیکیشن‌های FastAPI است را بر روی سیستم شما نصب می‌کند.

گام چهارم: ساخت اولین API

پس از نصب، می‌توانید اولین برنامه ی FastAPI خود را با ایجاد یک فایل جدید به نام main.py بنویسید و کد زیر را در آن قرار دهید:

from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
    return {"Hello": "World"}

گام پنجم: اجرای برنامه

برای اجرای برنامه ی خود از Uvicorn به عنوان سرور استفاده کنید. دستور زیر را در ترمینال یا CMD وارد کنید:

uvicorn main:app --reload

این دستور برنامه ی FastAPI شما را با قابلیت بارگذاری مجدد خودکار (برای تغییرات کد در زمان توسعه) اجرا می‌کند.
با اتمام این گام ها، شما یک برنامه ی FastAPI ساده را نصب، راه اندازی و اجرا کرده اید و حالا آماده اید تا پروژه‌های بزرگ‌تر و پیچیده‌تری را آغاز کنید.

آموزش FastAPI

برای شروع کار با FastAPI، خبر خوب این است که به کدنویسی پیچیده یا تنظیمات طولانی نیازی ندارید. تنها با چند خط کد می‌توانید یک API کاملاً قابل‌اجرا بسازید. 

ساخت یک اپلیکیشن ساده

در این بخش، یک مثال ساده‌ی «Hello, World!» را پیاده‌سازی می‌کنیم تا با منطق کلی FastAPI آشنا شوید.

ساخت فایل اصلی برنامه

نام فایل اصلی FastAPI کاملاً به انتخاب شماست. معمولاً از نام‌هایی مثل main.py، app.py یا api.py استفاده می‌شود. در این آموزش فرض می‌کنیم فایل اصلی شما main.py است.

کد زیر را داخل این فایل قرار دهید:

from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def home():
    return {"message": "Hello, FastAPI!"}

این اپلیکیشن ساده، مفاهیم پایه‌ی FastAPI را به‌خوبی نشان می‌دهد:

  • ابتدا کلاس FastAPI را ایمپورت می‌کنیم.
  • سپس یک نمونه از آن می‌سازیم و در متغیر app قرار می‌دهیم. این متغیر، هسته‌ی اصلی برنامه‌ی ماست.
  • با استفاده از دکوراتور @app.get("/") یک endpoint تعریف می‌کنیم که به درخواست‌های GET روی مسیر ریشه (/) پاسخ می‌دهد.
  • تابع home خروجی خود را به‌صورت یک دیکشنری پایتونی برمی‌گرداند. FastAPI این دیکشنری را به‌صورت خودکار به JSON تبدیل می‌کند.

نکته مهم این است که توابع در FastAPI می‌توانند سینک (synchronous) یا async باشند. خود فریم‌ورک تشخیص می‌دهد چگونه آن‌ها را اجرا کند، به همین دلیل، در پیاده‌سازی منطق برنامه محدود به یک الگوی خاص نیستید.

اجرای برنامه در حالت توسعه (Development)

برای اجرای برنامه، از CLI رسمی FastAPI استفاده می‌کنیم:

fastapi dev main.py

اجرای برنامه در حالت dev باعث می‌شود هر بار که فایل کد را تغییر می‌دهید، سرور به‌صورت خودکار ری‌لود شود. این دقیقاً همان چیزی است که در زمان توسعه به آن نیاز دارید.

اگر نام فایل شما main.py، app.py یا api.py باشد، حتی می‌توانید نام فایل را هم ننویسید، اما مشخص‌کردن آن شفاف‌تر و حرفه‌ای‌تر است.

اجرای برنامه در حالت Production

برای محیط واقعی و سرور، باید از حالت production استفاده کنید:

fastapi run main.py

در این حالت:

  • قابلیت auto-reload غیرفعال می‌شود.
  • برنامه با تنظیمات بهینه اجرا می‌شود.
  • مناسب سرویس‌دهی به ترافیک واقعی است.

همچنین می‌توانید با فلگ‌های --host و --port مشخص کنید برنامه روی چه آدرس و پورتی اجرا شود. به‌صورت پیش‌فرض، FastAPI روی آدرس زیر در دسترس است:

http://127.0.0.1:8000 

با باز کردن این آدرس در مرورگر، خروجی JSON زیر را خواهید دید:

برای بررسی خروجی‌ها، می‌توانید از مرورگر استفاده کنید، اما برای کار حرفه‌ای‌تر با APIها ابزارهایی مثل Postman یا Bruno انتخاب‌های مناسبی هستند. حتی نصب یک افزونه‌ی نمایش JSON در مرورگر هم می‌تواند تجربه‌ی توسعه را بهتر کند.

تقویت بک‌اند با FastAPI

در دنیای واقعی، APIها فقط برای برگرداندن یک پیام دوستانه مثل «Hello, World!» ساخته نمی‌شوند. معمولاً لازم است endpointهایی داشته باشید که داده دریافت کنند، آن را پردازش کنند و خروجی معنادار برگردانند؛ دقیقاً همان چیزی که مثلاً هنگام اتصال یک فرانت‌اند JavaScript به بک‌اند به آن نیاز دارید.

FastAPI این الگوهای رایج را با مفاهیمی مثل Path Parameter، Query Parameter و Request Body به‌شکلی ساده و شفاف در اختیار شما قرار می‌دهد.

برای درک بهتر، کد قبلی را کنار بگذارید و محتوای فایل main.py را با مثال زیر جایگزین کنید. در این مثال، یک API ساده برای مدیریت فهرست کتاب‌ها پیاده‌سازی شده است.

from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
books = [
    {"id": 1, "title": "Python Basics", "author": "Real P.", "pages": 635},
    {"id": 2, "title": "Breaking the Rules", "author": "Stephen G.", "pages": 99},
]
class Book(BaseModel):
    title: str
    author: str
    pages: int 

در این بخش:

  • یک لیست ساده به نام books داریم که نقش دیتابیس موقت را بازی می‌کند.
  • کلاس Book با استفاده از Pydantic تعریف شده و ساختار داده‌ی ورودی کتاب را مشخص می‌کند.

دریافت لیست کتاب‌ها با Query Parameter

اولین endpoint، لیست کتاب‌ها را برمی‌گرداند و یک پارامتر اختیاری به نام limit دارد:

@app.get("/books")
def get_books(limit: int | None = None):
    if limit:
        return {"books": books[:limit]}
    return {"books": books}

پارامتر limit یک Query Parameter است. اگر کاربر آن را ارسال کند، فقط به همان تعداد کتاب برگردانده می‌شود؛ در غیر این صورت، کل لیست کتاب‌ها ارسال خواهد شد. کنترل این رفتار کاملاً در اختیار مصرف‌کننده‌ی API است.

دریافت یک کتاب خاص با Path Parameter

در endpoint بعدی، از Path Parameter استفاده شده است:

@app.get("/books/{book_id}")
def get_book(book_id: int):
    for book in books:
        if book["id"] == book_id:
            return book
    return {"error": "Book not found"}

اینجا مقدار book_id مستقیماً از مسیر URL دریافت می‌شود. اگر کتابی با این شناسه وجود داشته باشد، اطلاعات آن برگردانده می‌شود؛ در غیر این صورت، یک پیام خطا به کاربر ارسال خواهد شد.

افزودن کتاب جدید با Request Body

تا اینجا فقط با درخواست‌های GET کار کرده‌ایم. حالا نوبت به POST می‌رسد:

@app.post("/books")
def create_book(book: Book):
    new_book = {
        "id": len(books) + 1,
        "title": book.title,
        "author": book.author,
        "pages": book.pages
    }
    books.append(new_book)
    return new_book

در این endpoint:

  • مسیر /books همان مسیر قبلی است، اما متد HTTP متفاوت است.
  • داده‌ها از طریق Request Body و به‌صورت JSON ارسال می‌شوند.
  • FastAPI به‌صورت خودکار داده‌ی ورودی را بر اساس مدل Book اعتبارسنجی می‌کند.

اگر کاربر داده‌ی نامعتبر (مثلاً مقدار متنی برای pages) ارسال کند، FastAPI قبل از اجرای منطق شما، خطای مناسب و قابل فهمی برمی‌گرداند.

نقش Pydantic در اعتبارسنجی داده‌ها

مدل زیر پایه‌ی اعتبارسنجی داده‌هاست:

class Book(BaseModel):
    title: str
    author: str
    pages: int 

به‌کمک Pydantic، ساختار داده‌ها شفاف است و نیازی به نوشتن کدهای دستی برای بررسی ورودی‌ها ندارید. این یکی از مزیت‌های کلیدی FastAPI در پروژه‌های واقعی است.

یک نکته مهم درباره ذخیره‌سازی داده‌ها: لیست books صرفاً برای مثال استفاده شده است. در پروژه‌های واقعی، برای ذخیره‌سازی پایدار داده‌ها باید از دیتابیس استفاده کنید. FastAPI به‌خوبی با دیتابیس‌های مختلف سازگار است و معمولاً در کنار ORMهایی مثل SQLAlchemy استفاده می‌شود.

تست API ساخته‌شده

پس از اجرای برنامه با دستور زیر:

fastapi dev main.py

می‌توانید endpointها را مستقیماً در مرورگر تست کنید:

http://127.0.0.1:8000/books

http://127.0.0.1:8000/books?limit=1

http://127.0.0.1:8000/books/2

استفاده از مستندات خودکار FastAPI

یکی از برجسته‌ترین و کاربردی‌ترین قابلیت‌های FastAPI، مستندات خودکار API است. بدون نوشتن حتی یک خط کد اضافه، FastAPI بر اساس ساختار کد و type hintها، مستنداتی تعاملی و کاملاً قابل استفاده برای API شما تولید می‌کند.

در حالی که سرور شما در حال اجراست، مرورگر را باز کنید و به آدرس زیر بروید:

http://127.0.0.1:8000/docs 

در این صفحه، رابط کاربری تعاملی Swagger UI را مشاهده می‌کنید:

Swagger UI تمام endpointها، متدهای HTTP، ساختار ورودی‌ها و خروجی‌های API را نمایش می‌دهد. اما این فقط یک مستندات ساده نیست؛ شما می‌توانید مستقیماً از داخل مرورگر، endpointها را اجرا و تست کنید.

تست endpointها به‌صورت تعاملی

این قابلیت به‌ویژه برای endpointهای POST بسیار ارزشمند است. مثلاً برای اضافه‌کردن یک کتاب جدید:

  • endpoint مربوط به ایجاد کتاب (Create Book) را باز کنید
  • روی دکمه Try it out کلیک کنید
  • داده‌های کتاب را به‌صورت JSON وارد کنید
  • دکمه Execute را بزنید

بدون نیاز به Postman یا ابزار جانبی، درخواست شما اجرا می‌شود و پاسخ API را همان‌جا می‌بینید.

مستندات جایگزین با ReDoc

اگر ترجیح می‌دهید مستندات را در قالبی ساده‌تر و رسمی‌تر ببینید، FastAPI یک گزینه‌ی دیگر هم در اختیار شما می‌گذارد. کافی است به آدرس زیر بروید:

http://127.0.0.1:8000/redoc

ReDoc همان اطلاعات Swagger را نمایش می‌دهد، اما با چیدمانی متفاوت. هر دو ابزار مستندات خودکار هستند و به‌محض اینکه endpoint جدیدی اضافه کنید یا تغییری در کد بدهید، بعد از ری‌استارت سرور، مستندات نیز به‌صورت خودکار به‌روزرسانی می‌شوند.

چرا مستندات خودکار FastAPI یک مزیت جدی است؟

این قابلیت چند مزیت مهم و عملی دارد:

  • Onboarding سریع توسعه‌دهندگان: اعضای جدید تیم بدون توضیح اضافه، می‌توانند API را بشناسند، تست کنند و شروع به کار کنند.
  • همکاری راحت با فرانت‌اند و مصرف‌کنندگان API: توسعه‌دهندگان فرانت‌اند می‌توانند endpointها را بررسی و سناریوهای مختلف را امتحان کنند، بدون نوشتن حتی یک خط کد.
  • نگهداری آسان و بدون خطا: مستندات مستقیماً از روی کد تولید می‌شوند؛ بنابراین همیشه با منطق واقعی API هماهنگ هستند و خطر فراموش‌ کردن به‌روزرسانی مستندات عملاً از بین می‌رود.

در بسیاری از پروژه‌ها، همین قابلیت مستندات خودکار به‌تنهایی دلیل انتخاب FastAPI است. صرفه‌جویی در زمان، کاهش خطاهای انسانی و تجربه‌ی توسعه‌دهنده‌ی بسیار بهتر، FastAPI را به گزینه‌ای ایده‌آل برای APIهای واقعی و مقیاس‌پذیر تبدیل می‌کند.

مزایا و معایب فریم ورک FastAPI

در این بخش، به بررسی دقیق‌تر ویژگی‌های منحصر به فرد FastAPI و تاثیر آن‌ها بر توسعه وب خواهیم پرداخت. این فریم ورک به خاطر ساختار مدرن و قابلیت‌های پیشرفته اش، مزایا و چالش‌های خاص خود را دارد که می‌تواند بر تصمیمات توسعه دهندگان تاثیر بگذارد.

مزایای FastAPI

  • سرعت بالا در اجرا و توسعه: طراحی شده برای حداکثر کارایی و کمترین زمان پاسخ دهی.
  • پشتیبانی از تایپینگ استاتیک: استفاده از Type Hints برای کاهش خطاها و افزایش دقت در توسعه.
  • مستندسازی خودکار: ایجاد مستندات API خودکار با استفاده از Swagger و ReDoc بدون نیاز به کد اضافی.
  • کارایی بالا در برنامه نویسی غیرهمزمان: پشتیبانی از Async و Await برای بهینه سازی استفاده از منابع.
  • پشتیبانی از مدرن‌ترین ویژگی‌های پایتون: بهره گیری از آخرین قابلیت‌های زبان Python برای تجربه ی بهتر توسعه.

معایب FastAPI

  • اکوسیستم نسبتاً کوچک: در مقایسه با فریم ورک‌های دیگر مانند Django یا Flask، اکوسیستم کمتری دارد.
  • نیاز به دانش برنامه نویسی غیرهمزمان:دانش کافی از برنامه نویسی غیرهمزمان برای استفاده  از FastAPI ضروری است.

با درک این مزایا و معایب، توسعه دهندگان می‌توانند تصمیم بهتری برای انتخاب فریم ورک مناسب در هر پروژه نرم افزاری داشته باشند.

احراز هویت در FastAPI

احراز هویت یکی از جنبه‌های مهم توسعه هر وب اپلیکیشن است. این چارچوب با ارائه ابزارهای قدرتمند برای مدیریت احراز هویت و مجوزها، توسعه دهندگان را قادر می‌سازد تا اپلیکیشن‌های امنی بسازند.در این بخش با هدف درکی عمیق از این امکانات برای شما به روش‌های احراز هویت و مدیریت مجوزها در این فریم ورک می‌پردازیم.

این پلتفرم چندین روش برای احراز هویت را پشتیبانی می‌کند که شامل استفاده از توکن ها، OAuth2 و کوکی‌ها می‌شود. برای بهبوود امنیت، این فریم ورک از ماژول هایی مانند python-jose برای JWT و passlib برای هش (hash) کردن رمز عبور استفاده می‌کند.

تنظیم OAuth2

OAuth2 یکی از روش‌های رایج برای احراز هویت در اپلیکیشن‌های مدرن است. FastAPI امکانات زیر را برای پیاده سازی این روش فراهم می‌کند:

  • تعریف endpoint‌های ورود و خروج: این فریم ورک اجازه می‌دهد تا به سادگی endpoint هایی برای ورود و خروج کاربران تعریف کنید.
  • ایجاد توابع dependency: توابع dependency به شما امکان می‌دهند تعیین کنید که آیا یک درخواست خاص نیاز به کاربر احراز هویت شده دارد یا خیر.
  • مدیریت توکن ها: فریم ورک FastAPI ابزارهایی را برای ساخت و مدیریت توکن‌ها ارایه میدهد که به کاربران اجازه می‌دهد پس از ورود به سیستم، به منابعی که محافظت شده هستند دسترسی داشته باشند.

مدیریت مجوزها

پس از احراز هویت، مرحله بعدی تعیین سطح دسترسی کاربر است. این فریم ورک به شما امکان می‌دهد تا مجوزهای مختلفی بر اساس نقش‌های کاربران تعریف کنید که اغلب از طریق توابع dependency انجام می‌شود.
در زیر نمونه ای از کد برای تعیین اینکه آیا کاربر دارای نقش ادمین است یا خیر آورده شده است:

from fastapi import Depends, HTTPException, status
from fastapi.security import OAuth2PasswordBearer
from typing import Optional
oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")
def get_current_user(token: str = Depends(oauth2_scheme)):
    user = fake_decode_token(token)
    return user
def get_current_active_user(
current_user: User = Depends(get_current_user)
):
    if not current_user.is_active:
        raise HTTPException(status_code=400)
    return current_user
def get_current_admin_user(
current_user: User = Depends(get_current_active_user)
):
    if current_user.role != "admin":
        raise HTTPException(status_code=401)
    return current_user

با استفاده از این توابع در endpoint‌های مختلف، می‌توانید مشخص کنید  تنها کاربرانی که مجوزهای لازم را دارند به منابع حساس دسترسی پیدا کنند. این تنظیمات امنیتی ، فریم ورک FastAPI را به یکی از امن‌ترین و قابل انعطاف‌ترین فریم ورک‌ها برای توسعه ی وب اپلیکیشن‌ها تبدیل می‌کند.

تست نویسی با FastAPI

این ابزار با بهره گیری از قابلیت‌های Starlette، امکان تست کلاینت را به صورت داخلی فراهم می‌کند. این ویژگی به توسعه دهندگان امکان می‌دهد تا API‌های خود را به شکل زیر تست کنند:

from fastapi.testclient import TestClient
client = TestClient(app)
def test_read_root():
    response = client.get("/")
    assert response.status_code == 200
    assert response.json() == {"Hello": "World"}

این کد API endpoint شما را فراخوانی می‌کند و پاسخ دریافتی را بررسی می‌کند.
شما می‌توانید پارامترهای کوئری (query string in URL)، بدنه‌های درخواست، احراز هویت و غیره را نیز تست کنید. به عنوان مثال:

def test_greet():
    response = client.get("/greet/John")
    assert response.status_code == 200
    assert response.text == "Hello John"
def test_create_item():
    response = client.post("/items/", json={"name": "Foo")
    assert response.status_code == 200

برای تست جریان‌های OAuth2، می‌توانید به طور مستقیم endpoint‌های OAuth2 را فراخوانی کنید. این روش تست به شما امکان می‌دهد تا از صحت عملکرد تمام جنبه‌های API خود اطمینان حاصل کنید و به توسعه ی نرم افزاری مطمئن و کارآمد کمک می‌کند.

جمع بندی

FastAPI با تمرکز بر سرعت، کارایی و سادگی، یکی از بهترین گزینه‌ها برای توسعه API‌های مدرن و کارآمد به شمار می‌رود. این فریم ورک قدرتمند با بهره گیری از ویژگی‌های پیشرفته Python و پشتیبانی از برنامه نویسی غیرهمگام (Asynchronous Programming)، به توسعه دهندگان این امکان را می‌دهد تا برنامه هایی با عملکرد فوق العاده، قابلیت نگهداری آسان و مقیاس پذیری بالا خلق کنند.
علاوه بر این، FastAPI با ارائه مستندسازی خودکار، پشتیبانی از ابزارهای توسعه قدرتمند و جامعه فعال کاربران، فرآیند توسعه را برای برنامه نویسان تسهیل می‌کند. این فریم ورک کاربرد گسترده ای در زمینه‌های مختلف از جمله وب اپلیکیشن ها، میکروسرویس ها، سیستم‌های تحلیل داده و موارد دیگر دارد.
اگر تجربه استفاده از این فریم ورک قدرتمند را در پروژه‌های خود دارید، پیشنهاد می‌دهم تجربیات، چالش ها، دستاوردها و نکات آموزنده خود را در بخش نظرات همین مقاله با جامعه کاربران به اشتراک بگذارید. اشتراک گذاری دانش و تجربیات شما می‌تواند به پیشرفت و بهبود مستمر و افزایش آگاهی در مورد این ابزار ارزشمند کمک شایانی کند.

۰ دیدگاه
ما همه سوالات و دیدگاه‌ها رو می‌خونیم و پاسخ میدیم

دوره الفبای برنامه نویسی با هدف انتخاب زبان برنامه نویسی مناسب برای شما و پاسخگویی به سوالات متداول در شروع یادگیری موقتا رایگان شد:

۲۰۰ هزار تومان رایگان
دریافت دوره الفبای برنامه نویسی