آموزش کامل ساخت API با پایتون
به عنوان یک مهندس داده، به اشتراک گذاشتن کارهای خود تا هر فرد دیگری بتواند از فرآیندها و مدلهایی که ایجاد کردهایم استفاده کند گاهی لازم است، در این مواقع، API ها به کار میروند. در این آموزش ساخت API با استفاده از پایتون، قصد داریم توضیح دهیم که API چیست و چگونه میتوانیم آن را در پایتون ایجاد کنیم.
برای اتمام این آموزش، شما میتوانید از سیستم عاملهای ویندوز، macOS یا Linux استفاده کنید. همچنین، نیاز به نصب پایتون ۳، چارچوب وب Flask و یک مرورگر وب برای این آموزش دارید.
تنها دانشی که به صورت صریح برای این آموزش مورد نیاز است، توانایی استفاده از یک ویرایشگر متن مانند BBEdit در macOS یا Notepad++ در ویندوز است. با این حال، آشنایی با خط فرمان پایتون و مفاهیم وب مانند پروتکل HTTP، این آموزش را آسانتر خواهد کرد. اگر تازه کار در زمینه پایتون هستید، توصیه میکنم آموزش را مطالعه کرده و تمرین کنید تا با مفاهیم اساسی برنامهنویسی پایتون آشنا شوید.
آموزش نصب Python و Flask
در اینجا مراحل نصب Python و چارچوب وب Flask را برای سیستم عاملهای Windows، macOS و Linux توضیح میدهم:
نصب Python:
- وبسایت رسمی Python را به آدرس https://www.python.org بروید.
- در بخش “Downloads”، دکمه “Python” را کلیک کنید.
- صفحه دانلود Python نمایش داده میشود. در اینجا نسخهای از Python برای سیستم عامل شما قابل دسترسی است. اگر نسخهای برای سیستم عامل شما موجود نیست، میتوانید به بخش “Python for Other Systems” بروید و نسخهای را برای سیستم عامل خود دانلود کنید.
- بر روی دکمه دانلود برای نسخه مورد نظر خود کلیک کنید و فایل نصب را دانلود کنید.
- پس از دانلود، فایل نصب را اجرا کنید و دستورالعملهای نصب را دنبال کنید. اطمینان حاصل کنید که گزینه “Add Python to PATH” (افزودن Python به مسیر محیطی) در هنگام نصب انتخاب شده باشد.
نصب Flask:
- کنسول یا ترمینال خود را باز کنید.
- برای نصب Flask، از طریق pip (مدیر بسته پایتون) عمل کنید. در ویندوز، باید از دستورالعمل Command Prompt یا PowerShell استفاده کنید. در macOS و Linux، از ترمینال استفاده کنید.
- در کنسول یا ترمینال، دستور زیر را وارد کنید تا Flask نصب شود:
pip install flask
- صبر کنید تا نصب Flask کامل شود. بسته Flask هماکنون در سیستم شما نصب شده است.
اکنون شما Python و چارچوب Flask را بر روی سیستم خود نصب کردهاید و آماده برای شروع توسعه وبسایت با Flask هستید.
API چیست و چه مواقعی لازم است؟
API مخفف عبارت Application Programming Interface است. API مجموعهای از روشها، پروتکلها و ابزارهایی است که برنامهها میتوانند از طریق آن با یکدیگر ارتباط برقرار کنند و اطلاعات را مبادله کنند. API به عنوان یک واسط برنامهنویسی فراهم میکند که برنامهها از آن استفاده میکنند تا با سرویسها، کتابخانهها و سیستمهای دیگر ارتباط برقرار کنند و از قابلیتها و منابع آنها بهرهبرداری کنند. API چیست؟
API ها در موارد زیر لازم و مفید هستند:
- ارتباط بین برنامهها: با استفاده از API، برنامهها میتوانند اطلاعات و سرویسهای خود را با برنامهها و سرویسهای دیگر به اشتراک بگذارند. به عنوان مثال، یک برنامه موبایل میتواند از API یک سرویس محلی استفاده کند تا اطلاعات مکانی را دریافت کند.
- توسعه نرمافزار: API به برنامهنویسان امکان میدهد که از کتابخانهها و فریمورکهای موجود استفاده کنند و قابلیتهای آنها را به برنامه خود اضافه کنند. به عنوان مثال، یک برنامهنویس میتواند از API یک کتابخانه گرافیکی استفاده کند تا رابط کاربری زیبا و پویا ایجاد کند.
- اتصال به سرویسهای خارجی: API به برنامهها اجازه میدهد با سرویسهای خارجی مانند شبکههای اجتماعی، سامانههای پرداخت و سایر سرویسها ارتباط برقرار کنند. این امکان را فراهم میکند تا برنامهها قابلیتهای اضافی را از این سرویسها بهرهبرداری کنند، مانند ورود با حساب کاربری شبکههای اجتماعی در یک برنامه.
- اشتراک داده و اطلاعات: با استفاده از API، میتوان اطلاعات و دادهها را به اشتراک گذاشت و با دیگران به اشتراک بگذارید. به عنوان مثال، یک سرویس ابری میتواند API برای اشتراک فایلها و سندها ارائه کند.
اجزای تشکیل دهنده یک API چیست؟
یک API معمولاً شامل سه بخش اصلی است:
- روتینها یا مسیرها (Endpoints):
روتینها یا مسیرها، آدرسهایی هستند که برنامهها میتوانند از طریق آنها با API تعامل کنند. هر روتین یک عملیات خاص را انجام میدهد و با درخواستهای مختلفی قابل دسترسی است. به عنوان مثال، یک روتین ممکن است برای دریافت لیست کاربران، روتین دیگری برای ایجاد کاربر جدید و روتین دیگری برای حذف یک کاربر را ارائه کند. هر روتین معمولاً یک URL منحصر به فرد دارد و با درخواستهای HTTP مختلفی مانند GET، POST، PUT و DELETE قابل دسترسی است. - پارامترها:
پارامترها مقادیری هستند که به روتینها ارسال میشوند تا عملیات مورد نظر را انجام دهند یا نتایج را تغییر دهند. پارامترها میتوانند درخواستهای GET (از طریق پارامترهای URL)، POST (از طریق بدنه درخواست) و یا درخواستهای دیگر ارسال شوند. به عنوان مثال، در یک API مربوط به مدیریت کاربران، شما میتوانید پارامترهایی مانند شناسه کاربر، نام، نامخانوادگی و غیره را به روتینها ارسال کنید تا عملیات مورد نظر را روی آن کاربر انجام دهید. - نوع محتوا (Content Type):
نوع محتوا، نوع دادهای است که با درخواست یا پاسخ API ارسال میشود. این نوع معمولاً با استفاده از هدرهای HTTP مشخص میشود. نوع محتوا میتواند متنی (مانند JSON یا XML)، تصویر، ویدئو، فایلهای صوتی و غیره باشد. با تعیین نوع محتوا، برنامهها قادرند دادههای دریافتی را درک و پردازش کنند.
با استفاده از این سه بخش اصلی، API ها امکان ارتباط و تعامل بین برنامههای مختلف را فراهم میکنند و به برنامهنویسان اجازه میدهند تا از قابلیتها و منابع یک سرویس یا سیستم دیگر بهرهبرداری کنند.
آموزش کاربردی ایجاد یک API در پایتون با Flask
بسیار خب، مقدمه کافیست، بیاید آموزش اصلی را شروع کنیم، برای ایجاد یک API در پایتون با Flask، شما نیاز به نصب Flask دارید. در ادامه، مراحل راهاندازی یک API ساده با Flask توضیح داده شده است:
ایجاد فایل اصلی:
ساخت یک فایل با نام مورد نظر (مثلاً app.py
) و اضافه کردن محتوای زیر به آن:
from flask import Flask, jsonify, request
app = Flask(__name__)
@app.route('/', methods=['GET'])
def hello():
return jsonify({'message': 'Hello, World!'})
@app.route('/api/data', methods=['GET'])
def get_data():
data = {'name': 'John', 'age': 30}
return jsonify(data)
@app.route('/api/data', methods=['POST'])
def add_data():
data = request.get_json()
return jsonify({'message': 'Data added successfully'})
if __name__ == '__main__':
app.run(debug=True)
```
در این مثال، سه مسیر (`/`, `/api/data`, `/api/data`) تعریف شده است. مسیر `/` یک پاسخ “Hello, World!” را برمیگرداند. مسیر `/api/data` یک پاسخ JSON با دادههای ثابت برمیگرداند. مسیر `/api/data` به صورت POST درخواست JSON دریافت میکند و پاسخ متناسب با عملیاتی که بر روی داده انجام میدهید، برمیگرداند.
اجرای سرور:
اکنون میتوانید سرور Flask را با اجرای دستور زیر اجرا کنید:
python app.py
پس از اجرا، سرور بر روی `http://127.0.0.1:5000/` یا `http://localhost:5000/` اجرا میشود.
تست API:
برای تست API، میتوانید از ابزارهایی مانند curl یا Postman استفاده کنید. به عنوان مثال:
برای دریافت پاسخ از مسیر /api/data
از روش GET، میتوانید از دستور زیر استفاده کنید:
curl http://localhost:5000/api/data
برای ارسال درخواست به مسیر /api/data
با روش POST و ارسال داده JSON، میتوانید از دستور زیر استفاده کنید:
curl -X POST -H "Content-Type: application/json" -d '{"name": "Alice", "age": 25}' http://localhost:5000/api/data
با اجرای این دستورات، شما پاسخ متناظر با هر درخواست را دریافت خواهید کرد.
نحوه ارسال پارامترها به API در Flask
در Flask، شما میتوانید پارامترها را به API خود ارسال کنید در ادامه چند روش برای ارسال پارامترها در Flask توضیح داده شده است:
استفاده از رشته پرس و جو (Query String): در این روش، میتوانید پارامترها را به صورت رشته پرس و جو در آدرس URL اضافه کنید. برای استفاده از این روش، میتوانید از شیء request
در Flask استفاده کنید. مثال زیر نحوه استفاده از رشته پرس و جو را نشان میدهد:
from flask import Flask, request
app = Flask(__name__)
@app.route('/api/data', methods=['GET'])
def get_data():
name = request.args.get('name')
age = request.args.get('age')
return f'Name: {name}, Age: {age}'
if __name__ == '__main__':
app.run()
```
حال میتوانید با اضافه کردن پارامترها به آدرس URL، به API دسترسی پیدا کنید. به عنوان مثال:
در این مثال، پارامترهای `name` و `age` به صورت رشته پرس و جو در آدرس URL ارسال شدهاند.
استفاده از روش POST و فرمها (Form): در این روش، میتوانید پارامترها را از طریق یک فرم HTML و با استفاده از روش POST به سرور ارسال کنید. برای استفاده از این روش، باید بستهی request.form
را در Flask استفاده کنید. مثال زیر نحوه استفاده از روش POST و فرمها را نشان میدهد:
from flask import Flask, request
app = Flask(__name__)
@app.route('/api/data', methods=['POST'])
def add_data():
name = request.form.get('name')
age = request.form.get('age')
return f'Name: {name}, Age: {age}'
if __name__ == '__main__':
app.run()
```
با تکمیل فرم و ارسال آن، پارامترهای `name` و `age` به صورت POST به API ارسال میشوند.
استفاده از بدنه درخواست (Request Body): در این روش، پارامترها را در بدنه درخواست به صورت JSON یا دیگر فرمتهای دلخواه ارسال کنید. برای استفاده از این روش، باید بستهی request.get_json()
در Flask را استفاده کنید. مثال زیر نحوه استفاده از روش بدنه درخواست را نشان میدهد:
from flask import Flask, request
app = Flask(__name__)
@app.route('/api/data', methods=['POST'])
def add_data():
data = request.get_json()
name = data.get('name')
age = data.get('age')
return f'Name: {name}, Age: {age}'
if name == 'main':
app.run()
برای ارسال پارامترها به صورت JSON، میتوانید از ابزارهایی مانند curl یا Postman استفاده کنید. به عنوان مثال، با استفاده از curl:
curl -X POST -H "Content-Type: application/json" -d '{"name": "John", "age": 30}' http://localhost:5000/api/data
در این مثال، پارامترهای name
و age
به صورت JSON در بدنه درخواست ارسال شدهاند.
این سه روش متداول برای ارسال پارامترها به API در Flask هستند. شما میتوانید روشی که بیشتر با نیازهای خود هماهنگی دارد را انتخاب کنید.
آموزش کامل ایجاد API در پایتون با FastAPI
FastAPI یک چارچوب توسعه وب سریع و مدرن برای پایتون است که به شما اجازه میدهد API های قدرتمند و قابل اعتماد را با کد کمتری ایجاد کنید. برای ایجاد یک API با استفاده از FastAPI در پایتون، مراحل زیر را دنبال کنید:
- نصب FastAPI:
ابتدا باید FastAPI را نصب کنید. این کار را میتوانید با استفاده از ابزار مدیریت بستههای پایتون مانند pip انجام دهید. اجرای دستور زیر را در ترمینال خود انجام دهید:
pip install fastapi
- ایجاد یک فایل Python:
یک فایل جدید با پسوند .py ایجاد کنید (مثلاً main.py) و باز کنید. - وارد کردن ماژولهای مورد نیاز:
در ابتدای فایل Python خود، ماژولهای مورد نیاز را وارد کنید. برای ساخت یک API ساده، ما به FastAPI و ماژول uvicorn برای اجرای سرور نیاز داریم. بنابراین، این خطوط را به فایل خود اضافه کنید:
from fastapi import FastAPI
import uvicorn
- ایجاد نمونه FastAPI:
سپس، یک نمونه FastAPI بسازید:
app = FastAPI()
- تعریف روتینها:
حالا میتوانید روتینهای API خود را تعریف کنید. روتینها در FastAPI با استفاده از توابع Python تعریف میشوند. هر روتین معمولاً شامل یک آدرس URL، یک متد HTTP و یک تابع مربوط به آن است.
@app.get("/")
def read_root():
return {"Hello": "World"}
@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
return {"item_id": item_id, "q": q}
در مثال بالا، روتین اول به آدرس اصلی (“/”) متصل شده است و با درخواست GET قابل دسترسی است. تابع read_root
متن “Hello World” را به عنوان پاسخ برمیگرداند.
روتین دوم به آدرس “/items/{item_id}” مربوط میشود و یک پارامتر با نام item_id
را به عنوان ورودی دریافت میکند. همچنین یک پارامتر اختیاری با نام q
را نیز میپذیرد. تابع read_item
اطلاعات دریافتی را به صورت یک دیکشنری در قالب JSON به عنوان پاسخ برمیگرداند.
- اجرای سرور:
در نهایت، برای اجرای سرور FastAPI خود، این خط را به فایل اضافه کنید:
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8000)
اجرای API:اکنون میتوانید API خود را با اجرای فایل Python ایجاد شده اجرا کنید. برای این کار، دستور زیر را در ترمینال اجرا کنید:
uvicorn main:app --reload
این دستور سرور FastAPI را روی main.py
اجرا میکند و امکان بارگذاری مجدد سرور را در صورت تغییرات در کد فراهم میکند. سپس میتوانید به آدرس http://localhost:8000
در مرورگر خود مراجعه کنید و نتایج روتینهای تعریف شده را ببینید.
با اتمام این مراحل، شما یک API ساده با استفاده از FastAPI در پایتون ایجاد کردهاید. البته، شما میتوانید با استفاده از قابلیتهای پیشرفته تر FastAPI، ویژگیهایی مانند اعتبارسنجی دادهها، مستندسازی خودکار و مدیریت خطا را به API خود اضافه کنید که در ادامه به توضیح آنها خواهیم پرداخت.
اضافه کردن اعتبارسنجی دادهها در FastAPI
FastAPI امکانات قدرتمندی برای اعتبارسنجی دادهها فراهم میکند. با استفاده از این امکانات، میتوانید نوع و مقدار دادههای ورودی را بررسی کنید و اطمینان حاصل کنید که دادههای دریافتی صحیح و مورد انتظار هستند. برای اضافه کردن اعتبارسنجی دادهها در FastAPI، میتوانید از ویژگیهای تایپ هندلینگ (Type Handling) و ویژگیهای ورودی تابع استفاده کنید.
در ادامه، نحوه اعتبارسنجی دادهها در FastAPI را با مثالهایی توضیح میدهم:
- اعتبارسنجی نوع داده:
برای اعتبارسنجی نوع داده، میتوانید از تایپ هندلینگ در FastAPI استفاده کنید. به عنوان مثال، اگر میخواهید یک پارامتر عددی را دریافت کنید، میتوانید از تایپ int استفاده کنید:
from fastapi import FastAPI
app = FastAPI()
@app.get("/items/{item_id}")
def read_item(item_id: int):
return {"item_id": item_id}
در این مثال، با ارسال یک عدد به عنوان item_id
، FastAPI از قبل اعتبارسنجی میکند که مقدار ورودی یک عدد است. اگر مقدار ورودی عدد نباشد، FastAPI یک خطای اعتبارسنجی ایجاد میکند و به کلاینت پاسخ میدهد.
- اعتبارسنجی مقدار پیشفرض:
شما میتوانید مقدار پیشفرض برای پارامترها تعیین کنید و در صورتی که پارامتری ارسال نشود یا مقدار آن خالی باشد، از مقدار پیشفرض استفاده کنید. به عنوان مثال:
from fastapi import FastAPI
app = FastAPI()
@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
return {"item_id": item_id, "q": q}
در این مثال، پارامتر q
یک پارامتر اختیاری است و مقدار پیشفرض آن None است. اگر پارامتر q
دریافت نشود، مقدار آن به صورت خودکار None است. اما اگر مقداری برای q
ارسال شود، FastAPI آن را به عنوان مقدار ورودی در نظر میگیرد.
- اعتبارسنجی بیشتر:
FastAPI از Pydantic برای اعتبارسنجی و تبدیل دادهها استفاده میکند. شما میتوانید از Pydantic برای تعریف مدلهای داده استفاده کنید و از آنها برای اعتبارسنجی دقیقدرخواستهای ورودی استفاده کنید. به عنوان مثال:
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class Item(BaseModel):
name: str
price: float
@app.post("/items/")
def create_item(item: Item):
return {"item": item}
در این مثال، یک مدل داده به نام Item
با دو فیلد name
و price
تعریف شده است. در تابع create_item
، پارامتر item
از نوع Item
است که یک نمونه از مدل داده Item
است. FastAPI به طور خودکار دادههای ورودی را بر اساس ساختار مدل داده اعتبارسنجی میکند و در صورتی که دادهها صحیح نباشند، یک خطای اعتبارسنجی ایجاد میشود.
در اینجا، شما نمونههایی از روشهای اصلی برای اعتبارسنجی دادهها در FastAPI را دیدید. شما میتوانید با استفاده از این روشها و دیگر امکانات FastAPI، اعتبارسنجی دادههای ورودی را به صورت جامع و دقیقتر انجام دهید.
ویژگی مستندسازی خودکار در FastAPI چیست و چه کاربردی دارد؟
FastAPI از ویژگی مستندسازی خودکار برای ساخت مستندات تعاملی API استفاده میکند. این ویژگی به شما امکان میدهد به راحتی مستنداتی را برای API خود ایجاد کنید که شامل جزئیاتی درباره نقاط پایانی (endpoints)، پارامترها، نوعهای داده و پاسخها است.
برای استفاده از ویژگی مستندسازی خودکار در FastAPI، میتوانید از توضیحات (docstrings) در توابع مربوط به نقاط پایانی استفاده کنید. توضیحات در قالب رشتههای داخلی توابع قرار میگیرند و میتوانند شامل جزئیاتی درباره ورودیها، خروجیها، توضیحات عمومی و غیره باشند. FastAPI از توضیحات موجود در توابع استفاده کرده و مستندات تعاملی را ایجاد میکند.
در ادامه مثالی از استفاده از توضیحات در FastAPI برای مستندسازی خودکار آورده شده است:
from fastapi import FastAPI
app = FastAPI()
@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
"""
به عنوان مثال، این نقطه پایانی اطلاعات یک مورد با شناسه مشخص را برمیگرداند.
item_id
: شناسه مورد مورد نظرq
: یک پارامتر اختیاری برای جستجو
این نقطه پایانی مورد استفاده در برنامههای XYZ و ABC قرار میگیرد.
return {"item_id": item_id, "q": q}
در این مثال، توابع @app.get("/items/{item_id}")
و def read_item(item_id: int, q: str = None)
به همراه توضیحات داخلی کامنتها قرار دارند. این توضیحات در مستندسازی خودکار FastAPI استفاده میشوند و در صفحه مستندات تعاملی نمایش داده میشوند. این مستندات شامل جزئیاتی درباره نقطه پایانی، پارامترها، نوعهای داده و پاسخها خواهد بود.
برای دیدن مستندات تعاملی ایجاد شده توسط FastAPI، شما میتوانید به آدرس “http://localhost:8000/docs” (در صورت اجرای برنامه بر روی محلی) یا آدرس “http://localhost:8000/redoc” مراجعه کنید. در این صفحه، میتوانید تمام مستندات تعاملی API خود را مشاهده کنید و با استفاده از آنها، درخواستهای API را تست کنید.
ویژگی مستندسازی خودکار در FastAPI بسیارقدرتمند است و به شما کمک میکند تا مستندات جامع و قابل فهمی برای API خود ایجاد کنید.
مدیریت خطا در API با استفاده از FastAPI
FastAPI امکانات قدرتمندی برای مدیریت و پردازش خطاها در API ها ارائه میدهد. شما میتوانید از این قابلیتها برای شناسایی خطاها، ارسال پاسخهای مناسب و مستندسازی خطاها در مستندات تعاملی خود استفاده کنید. در زیر به برخی از روشهای مدیریت خطا در FastAPI اشاره میکنم:
- شناسایی خطاها با استفاده از استثناها (Exceptions):
میتوانید برای هر خطا یک استثنا (Exception) سفارشی ایجاد کنید و آن را در نقاط پایانی (endpoints) خود بررسی کنید. در صورت بروز خطا، میتوانید پاسخ مناسبی برگردانید و اطلاعات مربوط به خطا را در آن قرار دهید. مثال:
from fastapi import FastAPI
from fastapi.exceptions import RequestValidationError
from fastapi.responses import JSONResponse
app = FastAPI()
@app.exception_handler(RequestValidationError)
async def validation_exception_handler(request, exc):
return JSONResponse(
status_code=400,
content={"message": "Invalid request parameters", "details": exc.errors()},
)
- استفاده از دکوراتورها برای مدیریت خطاها:
FastAPI قابلیت استفاده از دکوراتورها برای مدیریت خطاها را فراهم میکند. با استفاده از دکوراتورapp.exception_handler
میتوانید برای هر خطا یک تابع مدیریت خطا تعریف کنید.
مثال:
python
from fastapi import FastAPI
from fastapi import HTTPException
app = FastAPI()
@app.exception_handler(HTTPException)
async def http_exception_handler(request, exc):
return JSONResponse(
status_code=exc.status_code,
content={"message": "An error occurred", "detail": str(exc)},
)
- نمایش خطاها در مستندات تعاملی:
FastAPI به طور خودکار قادر به مستندسازی خطاها و نمایش آنها در مستندات تعاملی است. شما میتوانید با استفاده از توضیحات (docstrings) در توابع مدیریت خطا، جزئیات خطا را توضیح دهید و FastAPI آنها را در مستندات تعاملی نمایش خواهد داد. مثال:
python
from fastapi import FastAPI
app = FastAPI()
@app.exception_handler(Exception)
async def generic_exception_handler(request, exc):
"""
- این تابع برای مدیریت خطاهای عمومی استفاده میشود. در این تابع، میتوانید پاسخ مناسبی برای خطا ارسال کنید و جزئیات خطا را در توضیحات زیر بیان کنید.
return JSONResponse(
status_code=500,
content={"message": "An error occurred", "detail": str(exc)},
)
“`
این روشها تنها چند نمونه از روشهای مدیریت خطا در FastAPI هستند. شما میتوانید از این روشها برای مدیریت و پردازش خطاها در API خود استفاده کنید. با استفاده از قابلیتهای مدیریت خطا در FastAPI، میتوانید خطاها را به صورت سفارشی کنترل کنید و پاسخهای مناسبی را برای کاربران ارسال کنید.
نتیجه گیری: برای ساخت API در پایتون از FastAPI استفاده کنیم یا Flask ؟
در آموزش ساخت API با پایتون، میتوانیم به سادگی API را با استفاده از دو روش FastAPI و Flask ایجاد کنیم. اما این دو روش تفاوتهای خاصی نیز دارند.
Flask یک چارچوب است که به ما امکان میدهد برنامههای وب را ایجاد کنیم. اما در FastAPI، اعتبارسنجی دادهها و همچنین فرآیند مستندسازی بسیار سریعتر از Flask است. بنابراین، توصیه میکنم که اگر فقط نیاز به ایجاد API دارید، از FastAPI استفاده کنید، زیرا بدون شک سرعت بیشتری خواهد داشت. اما اگر میخواهید یک رابط کاربری کامل (front and back) را ایجاد کنید و API بخشی از اکوسیستم شماست، توصیه میشود از Flask استفاده کنید، زیرا همه چیز تحت یک چارچوب قرار خواهد گرفت و برای شما راحتتر خواهد بود.