اتصال فلاتر به سرور با Dio: مدلها، خطاها و ساختار تمیز
هر اپ واقعی با یک API حرف میزند. این راهنما نشان میدهد چطور با Dio درخواست بزنید، پاسخها را به مدل Dart تبدیل کنید، خطاها را درست مدیریت کنید و کد شبکه را در یک لایهی تمیز نگه دارید.
برنامهنویس فولاستک شدن با فلاتر و FastAPI کاملاً شدنی است. این مقاله نقشهی راه ساخت بکاند را از اولین endpoint و مدلهای Pydantic تا PostgreSQL، migration و استقرار با Docker نشان میدهد.

اگر فلاتر را بلدید، یاد گرفتن بکاند شما را از «برنامهنویس اپ» به «سازندهی محصول» تبدیل میکند. FastAPI برای این کار انتخابی عالی است: سریع، مدرن، با مستندات خودکار و نزدیک به Dart از نظر تایپها.
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class Course(BaseModel):
id: int
name: str
price: int
@app.get("/api/v1/courses", response_model=list[Course])
async def list_courses():
return [Course(id=1, name="Flutter", price=4900000)]اجرا: uvicorn main:app --reload و بعد آدرس /docs را باز کنید.
برای دریافت داده از اپ، یک مدل Pydantic تعریف کنید. FastAPI خودش دادهی نامعتبر را با پیام خطای واضح رد میکند:
class OrderIn(BaseModel):
name: str
phone: str
description: str | None = None
@app.post("/api/v1/orders", status_code=201)
async def create_order(data: OrderIn):
...برای ذخیرهی داده، PostgreSQL گزینهی مطمئنی است و SQLAlchemy (نسخهی async) لایهی دسترسی به آن. برای تغییر ساختار جدولها در طول زمان از Alembic استفاده کنید تا هر تغییر یک migration نسخهدار باشد و روی سرور هم با یک دستور اعمال شود:
alembic revision --autogenerate -m "add orders table"
alembic upgrade headهمان اصلی که در فلاتر یاد گرفتید اینجا هم برقرار است: router (دریافت درخواست) ← service (منطق کسبوکار) ← repository/ORM (دسترسی به داده). منطق را داخل router ننویسید.
آدرسها را با /api/v1/... شروع کنید. وقتی روزی ساختار عوض شد، v2 میسازید و نسخههای قدیمی اپ شما هنوز کار میکنند؛ مهم چون کاربران همهی اپ را بهروز نمیکنند.
از سمت فلاتر همان مدل و Dio که در مقالهی قبلی دیدیم کافی است. چون پاسخها با Pydantic ساختار ثابت دارند، fromJson ساده میشود.
۱) Python و async، ۲) FastAPI و Pydantic، ۳) SQL و PostgreSQL، ۴) احراز هویت، ۵) Docker و استقرار. بعد از آن هر اپ فلاتر را میتوانید از صفر تا انتها خودتان بسازید.
دورهی VIP فست فلاتر از صفر تا انتشار اپلیکیشن، با پشتیبانی مستقیم مدرس.