Fri, Apr 18, 2025
چرا FastAPI عشق است
مهم نیست شما یک برنامه نویس تازه کار باشید یا از دنیای دیتا منظور کار با مدلها و هوش مصنوعی و یا تحلیل دیتا قرار ست با فست ای پی آی کار کنید. یک فریم ورک تر و تمیز با یه داکیومنت خوب که به شما کمک میکنه RestAPI بسازید.

Credit: FastAPI
خب اصلا RestAPI چی هست؟
-
کلمهی API مخفف Application Programming Interface هست، یعنی «واسط برنامهنویسی نرمافزار». به زبان ساده، API یه راه ارتباطی بین دو برنامه یا سیستم هست.
تصور کن API مثل یه منو در رستورانه که بهت میگه چه غذاهایی (درخواستهایی) میتونی سفارش بدی (انجام بدی). -
REST هم یه سبک (یا معماری) خاص برای طراحی API هست که خیلی پرکاربرد و استاندارد شده. REST مجموعهای از اصول ساده برای ارتباط بین کلاینت (مثل مرورگر یا اپ موبایل) و سرور هست.
پس REST API یعنی یه رابط ارتباطی ساده و قابل فهم برای ارتباط بین برنامهها، بر پایه قوانین REST.
یک مثال واقعی:
فرض کن یه اپلیکیشن موبایل داریم که اطلاعات آبوهوا رو نشون میده. این اپ خودش نمیتونه مستقیم به ماهواره یا پایگاه داده متصل بشه.
در عوض، با یه REST API تماس میگیره و میگه:
“سلام، لطفاً آبوهوا برای تهران رو بده.”
سرور هم با یه جواب مثل زیر، اطلاعات رو برمیگردونه:
{
"city": "Tehran",
"temperature": "18",
"status": "Sunny"
}
🚀 حالا ببینیم که فست ای پی آی چیه؟
FastAPI یه فریمورک (کتابخانهی پیشرفته) برای زبان Python هست که بهت کمک میکنه خیلی سریع و راحت REST API بسازی.
یعنی اگر بخوای با پایتون یه API بنویسی که مثلاً داده بفرسته، دریافت کنه، کاربر بسازه، اطلاعات ذخیره کنه یا پردازش انجام بده، FastAPI یکی از بهترین انتخابهاست.
✅ چرا FastAPI محبوبه؟
- سرعت بالا – خیلی سریع اجرا میشه ( بنا به گفته سازنده تقریباً همرده Node.js و Go)
- کدنویسی ساده و خوانا – با کمترین کد، بیشترین خروجی رو میگیری.
- پشتیبانی از تایپها (type hints) – بهت کمک میکنه خطاها رو زودتر بگیری و با ادیتورهایی مثل VS Code راحتتر کار کنی.
- مستندات خودکار – وقتی API ساختی، خود فریمورک یه صفحه مستندات برات میسازه (با Swagger UI) که خیلی حرفهایه.
👨💻 یه مثال ساده FastAPI
حالا یک کد ساده که همون خروجی آب و هوای تهران را در مثال قبل تولید میکنه که با استفاده از متد GET
نوشته شده
که مقدار این آب و هوا میتونه از یک سنسر مثلا روی رزبری پای گرفته بشه و حتی این کد هم میتونه روی رزبری پای کار کند.
from fastapi import FastAPI
app = FastAPI()
@app.get("/weather")
def get_weather():
return {
"city": "Tehran",
"temperature": "18",
"status": "Sunny"
}
پس اگر FastAPI میتونه هر نوع دادهای رو از طریق پروتکل REST منتشر کنه،
و میتونه روی هر دستگاهی که از پایتون پشتیبانی میکنه اجرا بشه،
در نتیجه میتونه دادهها رو به مدلهای هوش مصنوعی هم منتقل کنه.
این یعنی ما میتونیم از طریق APIهایی که با FastAPI ساختیم،
با مدل خودمون صحبت کنیم — داده بفرستیم، پاسخ بگیریم، یا نتیجه تحلیلها رو دریافت کنیم.
فرانتاند سایت یا اپلیکیشن هم میتونه مستقیماً با این API ارتباط برقرار کنه
و اطلاعات مورد نیاز رو از مدل دریافت یا به اون ارسال کنه.
✅ به زبان ساده:
FastAPI میتونه نقش واسط بین بخشهای مختلف یه سیستم رو بازی کنه، مثل:
- دیتابیسها (مثل PostgreSQL, MongoDB)
- مدلهای هوش مصنوعی (مثل مدلهای یادگیری ماشین یا ChatGPT)
- سرویسهای خارجی (مثل Stripe برای پرداخت، Twilio برای پیامک، یا OpenAI برای هوش مصنوعی)
و همه این ارتباطها رو با سرعت، سادگی و ساختاری استاندارد برقرار کنه.
🧠 چطوری با مدلمون صحبت کنیم ؟
فرض کن حالا یه مدل هوش مصنوعی داریم که قبلاً آموزشهای لازم رو دیده و تربیتش کردیم.
میخوایم وقتی دمای هوا رو بهش بدیم، مثل این مامانا بهمون بگه “عزیزم امروز چی بپوشی” 😁
اینجا فرض میکنیم اسم مدل ما outfit_model
هست و داخل فایل outfit_model.pkl
ذخیره شده.
پس در این صورت میتونیم با FastAPI اینجوری بنویسیم:
from fastapi import FastAPI
from pydantic import BaseModel
import joblib
app = FastAPI()
# مدل از فایل بارگذاری میشه
model = joblib.load("outfit_model.pkl")
# تعریف ساختار ورودی
class WeatherInput(BaseModel):
temperature: float
# تعریف API برای پیشبینی لباس مناسب
@app.post("/recommend-outfit")
def recommend_outfit(weather: WeatherInput):
temp = [[weather.temperature]]
prediction = model.predict(temp)[0]
return {
"temperature": weather.temperature,
"recommended_outfit": prediction
}
حالا هر وقت یک درخواست به /recommend-outfit
با یه دمای خاص بفرستیم،
مدل پیشبینی میکنه چه لباسی مناسب اون هواست.
🧪 مثال درخواست (Request):
{
"temperature": 12
}
پاسخ مدل (Response):
{
"temperature": 12,
"recommended_outfit": "پلیور"
}
خب، پس تا اینجا خیلی چیزها در مورد FastAPI به صورت شسته و رفته گفتم.
اما اگه میخوای بیشتر بدونی و حرفهایتر بشی، باید یه سری به مستندات رسمی FastAPI بزنی:
👉 https://fastapi.tiangolo.com
🧑💻 حالا وقتشه آستینهاتو بالا بزنی!
۱. نصب پایتون
۲. تنظیم محیط برنامهنویسی (virtual environment)
۳. نصب FastAPI و سایر مخلفات (مثل uvicorn
)
۴. و بعدش…
✨ تمرین، تمرین، تمرین!
شروع کن به کدنویسی، با مثالهای ساده مثل API آبوهوا، توصیه لباس، چتبات، یا هر چیزی که دوست داری.
کد بزن …