Маршрут объявлен как @app.get("/api/rooms/{room_id}") с функцией def get_room(room_id: int). Клиент отправляет запрос GET /api/rooms/5. Какое значение и какого типа получит функция-обработчик в аргументе room_id?
@app.get("/api/rooms/{room_id}")
def get_room(room_id: int)
room_id
Строка "5", потому что FastAPI всегда передаёт значения из URL как str
"5"
str
Целое число 5 типа int — FastAPI преобразует строку из URL по аннотации до вызова функции
5
int
Число 5.0 типа float, поскольку FastAPI расширяет целые до вещественных при конвертации
5.0
float
Строка "5", а аннотация : int используется только для документации в OpenAPI-схеме
: int
Функция получит словарь {"room_id": "5"}, FastAPI оборачивает path-параметры в объект
{"room_id": "5"}