FastAPI для начинающих: API с базой данных и тестамиПервый работающий APIПроект FastAPI и первый GET

Проект FastAPI и первый GET

Уроки курсаПроект FastAPI и первый GET

Первый каталог Roomly

Roomly — это внутренний сервис компании, который помогает сотрудникам ориентироваться в пространстве офиса и договариваться о месте для встречи. Прежде чем коллеги смогут выбрать подходящую переговорную, им нужно знать, что вообще доступно: как называется комната и на каком этаже она находится. Именно эту базовую информацию и призван предоставлять первый маршрут сервиса.

Разработка Roomly ведётся постепенно, и каждый новый шаг опирается на уже написанный код. Отправной точкой служит каталог переговорных — компактный список, который приложение возвращает по запросу. Пока в нём нет ни броней, ни фильтров, ни учётных записей: только названия комнат и этажи, достаточные для первого знакомства с пространством.

Когда приложение запущено локально и маршрут каталога зарегистрирован, обращение к нему возвращает JSON-список переговорных. Получить такой ответ — значит убедиться, что фундамент Roomly заложен верно и последующие лабораторные работы будут достраивать именно его.

Что уже дано

В редакторе открыт самодостаточный main.py: импорт FastAPI, объект верхнего уровня app и единый in-memory словарь rooms_by_id уже созданы. В словаре находятся переговорные с полями id, name и floor. Маршрутов и функций-обработчиков пока нет. Перед файлом выполняется видимый служебный переходник проверки: он определяет функции для запросов и чтения состояния, но не создаёт приложение или данные каталога. Менять переходник не нужно.

Что нужно сделать

Самостоятельно зарегистрируйте маршрут для метода GET и точного пути /api/rooms. Напишите функцию-обработчик, которая возвращает JSON-массив всех переговорных из rooms_by_id в порядке словаря. Запрос к маршруту должен получать статус 200. Не добавляйте параметры пути, query-параметры или другие маршруты.

Ввод и вывод

stdin не используется. Печатать через print в stdout ничего не нужно. После вашего кода проверяющая система читает объекты верхнего уровня app и rooms_by_id, затем отправляет запросы к app через TestClient. Результатом служат статус и JSON HTTP-ответа.

Не вставляйте в ответ пароли, токены, ключи доступа, паспортные и банковские данные, а также персональные данные других людей.
PythonPython 3.12 (web: FastAPI, SQLAlchemy, pytest)
Python Test Code