Sobes.tech
Назад к вопросам
Junior — Middle
61

Как осуществляется маршрутизация запросов в FastAPI и как она работает под капотом?

Компании, где спрашивали
РЕСО-Лизинг

Ответ от нейросети

sobes.tech AI

В FastAPI маршрутизация запросов основана на использовании декораторов, которые связывают HTTP-методы и пути URL с функциями-обработчиками (эндпоинтами). Например, @app.get("/items/{item_id}") указывает, что функция будет обрабатывать GET-запросы по пути /items/{item_id}.

Под капотом FastAPI использует Starlette — асинхронный веб-фреймворк, который реализует маршрутизацию через структуру маршрутов (routes). Когда приходит запрос, Starlette последовательно проверяет маршруты, сопоставляя путь и метод запроса с зарегистрированными маршрутами. Если совпадение найдено, вызывается связанная с маршрутом функция.

FastAPI дополнительно анализирует аннотации типов в функциях-обработчиках для валидации и преобразования данных запроса (параметров пути, query, тела и т.д.) с помощью Pydantic.

Пример:

from fastapi import FastAPI

app = FastAPI()

@app.get("/items/{item_id}")
async def read_item(item_id: int):
    return {"item_id": item_id}

Здесь при GET-запросе на /items/42 вызовется read_item с item_id=42.