Модульный REST API сервер с различными функциями для получения информации (рейсы, погода и т.д.).
app/
├── routers/ # API роутеры (flights, weather, ...)
├── models/ # Pydantic модели
├── services/ # Бизнес-логика и работа с внешними API
└── db.py # Работа с базой данных
main.py # Точка входа приложения
# Установка зависимостей
uv sync
# Или для установки с dev-зависимостями (для тестов)
uv sync --extra devuv run uvicorn main:app --reload --host 0.0.0.0 --port 8000Сервер: http://localhost:8000 Документация: http://localhost:8000/docs
Тесты находятся в директории tests/. Для запуска:
# Запуск всех тестов
uv run pytest -v
# Запуск конкретного файла
uv run pytest tests/test_flights.py -vGET /flights/all- все рейсыGET /flights/departures- вылетыGET /flights/arrivals- прилетыPOST /flights/update- обновление данных
GET /weather?city=Moscow&date_from=2025-01-15&date_to=2025-01-20- прогноз погоды
GET /twogis/hotels?city=Москва- поиск отелей в городеGET /twogis/route-map?lat_from=55.7522&lon_from=37.6156&lat_to=55.7558&lon_to=37.6173- карта маршрута
# Поиск отелей в Москве
curl "http://localhost:8000/twogis/hotels?city=Москва"
# Поиск отелей с датами
curl "http://localhost:8000/twogis/hotels?city=Москва&date_from=2025-01-15&date_to=2025-01-20"
# Карта маршрута
curl "http://localhost:8000/twogis/route-map?lat_from=55.7522&lon_from=37.6156&lat_to=55.7558&lon_to=37.6173"- Создать роутер:
app/routers/your_module.py - Добавить в
main.py:app.include_router(your_module.router)