Проект FastAPI и первый GET
Уроки курсаПроект FastAPI и первый GET
Декоратор связывает GET с Python-функцией
Чтобы FastAPI знал, какую функцию вызывать при запросе GET /api/rooms, используется декоратор. Декоратор — это строка над функцией, начинающаяся с @. Она передаёт функцию другому коду ещё в момент определения, до любых запросов.
@app.get("/api/rooms") регистрирует в объекте app связь: метод GET плюс путь /api/rooms → функция, которая написана сразу под декоратором. Имя функции при этом не задаёт URL.
Вот полный main.py для каталога переговорных:
from fastapi import FastAPI
app = FastAPI()
@app.get("/api/rooms")
def list_rooms():
return [{"id": 1, "name": "Лондон", "floor": 2}]
Когда приходит запрос GET /api/rooms, FastAPI вызывает list_rooms(). Функция возвращает обычный Python-список со словарём внутри. FastAPI автоматически сериализует его в JSON и добавляет заголовок Content-Type: application/json. Код ответа по умолчанию — 200.
Путь /api/rooms выбран произвольно для этого примера — никакого особого смысла в FastAPI он не несёт. Можно было написать /rooms или /v1/rooms; декоратор зарегистрирует любую строку пути.
В предыдущем уроке мы разбирали JSON как формат в теле HTTP-ответа. Здесь FastAPI делает эту работу сам: вы возвращаете Python-данные, а список становится JSON-массивом [{"id":1,"name":"Лондон","floor":2}] в теле ответа.

