Какой архитектурный подход используешь в FastAPI
Python
Middle
Без компании
Какой архитектурный подход используешь в FastAPI
Ответы
FastAPI основан на архитектурном подходе **MVC (Model-View-Controller)** с элементами **Dependency Injection**.
- **Модели (Model)** – Pydantic модели для валидации данных и ORM (например, SQLAlchemy).
- **Представления (View)** – FastAPI роутеры (`@app.get`, `@app.post` и т.д.), которые обрабатывают HTTP-запросы.
- **Контроллеры (Controller)** – бизнес-логика в функциях-обработчиках.
Также поддерживает **Dependency Injection** для управления зависимостями (например, БД, аутентификация).
**Пример:**
```
from fastapi import FastAPI, Depends
from pydantic import BaseModel
app = FastAPI()
# Model
class Item(BaseModel):
name: str
price: float
# Dependency (DI)
def get_db():
return "fake_db"
# Controller
@app.post("/items/")
def create_item(item: Item, db: str = Depends(get_db)):
return {"item": item, "db": db}
```
Это делает код модульным, тестируемым и легко расширяемым.