FastAPI — это быстрый и эффективный фреймворк для создания веб-приложений на языке Python. Он позволяет создавать эффективные API, а также обеспечивает высокую производительность и легкость использования благодаря использованию современных технологий и асинхронному программированию.
Основы создания приложения на FastAPI
FastAPI позволяет легко создавать веб-приложения на Python. Для этого вы можете использовать следующий код:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {"message": "Hello World"}
В этом примере мы создаем экземпляр приложения FastAPI и создаем корневой маршрут с помощью декоратора @app.get. Функция root() возвращает словарь, который содержит приветственное сообщение.
Настройка маршрутов в FastAPI
FastAPI обеспечивает простой и эффективный способ настройки маршрутов. Для этого вы можете использовать декораторы, такие как @app.get, @app.post, @app.put, @app.delete, и т.д.
@app.get("/items/{item_id}")
async def read_item(item_id: int):
return {"item_id": item_id}
В этом примере мы создаем маршрут «/items/{item_id}» с параметром пути item_id. Декоратор @app.get указывает на то, что мы используем метод GET для получения данных. Функция read_item() возвращает словарь, который содержит значение item_id.
Использование моделей данных в FastAPI
FastAPI позволяет использовать модели данных для определения типов данных, передаваемых через API. Для этого вы можете использовать модуль «pydantic».
from pydantic import BaseModel
class Item(BaseModel):
name: str
price: float
is_offer: bool = None
@app.post("/items/")
async def create_item(item: Item):
return item
В этом примере мы создаем модель данных Item с полями name, price и is_offer. Декоратор @app.post указывает на то, что мы используем метод POST для отправки данных. Функция create_item() принимает экземпляр модели Item в качестве параметра и возвращает этот экземпляр.
Использование зависимостей в FastAPI
FastAPI позволяет использовать зависимости для инъекции зависимостей в ваше приложение. Для этого вы можете использовать декораторы, такие как @app.depends_on.
from fastapi import FastAPI, Depends
app = FastAPI()
def get_db():
db = "fake db"
return db
@app.get("/items/")
async def read_items(db: str = Depends(get_db)):
return {"db": db, "items": [{"item_id": "Item 1"}, {"item_id": "Item 2"}]}
В этом примере мы создаем зависимость get_db(), которая возвращает строку «fake db». Зависимость используется в маршруте «/items/» с помощью декоратора @app.get и передается в качестве параметра функции read_items(). Функция read_items() возвращает словарь, который содержит значение db и список элементов.
Вы также можете использовать зависимости для работы с аутентификацией и авторизацией, для обработки файлов, для работы с базами данных и т.д.