لایه API¶
اینترفیس HTTP برای اپلیکیشن شما.
مکان¶
backend/api/
├── http/ # Routers
│ ├── users.py
│ └── orders.py
└── middleware/ # Middlewares
└── auth.py
ساختار Router¶
from fastapi import APIRouter, Depends
router = APIRouter(prefix="/orders", tags=["Orders"])
@router.get("/")
async def list_orders(
service: OrderService = Depends(get_order_service)
):
return await service.list_all()
@router.post("/", status_code=201)
async def create_order(
request: CreateOrderRequest,
service: OrderService = Depends(get_order_service)
):
return await service.create(request.model_dump())
قوانین¶
- کنترلرهای نازک - منطق در services
- استفاده از DTOs - اعتبارسنجی ورودی/خروجی
- هندل کردن خطاها - برگرداندن کدهای HTTP مناسب
- تزریق وابستگیها - استفاده از FastAPI Depends
ثبت Routers¶
در main.py:
from api.http.orders import router as orders_router
app.include_router(orders_router, prefix="/api/v1")