2.5 KiB
2.5 KiB
API Service
Minimal Flask HTTP API that reads from the fr24 PostgreSQL schema and exposes data for the noisemap UI.
Endpoints
| Method | Path | Description |
|---|---|---|
| GET | /health |
API + DB liveness check |
| GET | /dashboard/status |
Ingest pipeline stats (captures, packets, processing cursor, aircraft, flights) |
| GET | /viewer/config |
Static system config for the map viewer |
| GET | /captures |
List capture sessions (?limit=50) |
| GET | /aircraft |
List aircraft (?limit=100) |
| GET | /flights |
List flights (?limit=100&status=active) |
| GET | /api/schedule/data |
Расписание рейсов с обогащением. Параметры: flight_date, date_from, date_to, airport, direction, limit, offset |
| GET | /api/flight-actual |
Данные из fr24_ext.flight_actual (FR24 summary/full) |
| GET | /api/data-sources/coverage |
Покрытие источниками по дням |
| GET | /api/data-sources/quality |
Качество данных |
| GET | /api/data-sources/top-airlines |
Топ авиакомпаний |
| GET | /api/data-sources/top-routes |
Топ маршрутов |
| GET | /api/data-sources/airport-load |
Загрузка аэропортов |
| GET | /monitoring |
Мониторинг системы (контейнеры, DB, диск) |
Поле aircraft_type в /api/schedule/data
Тип ВС возвращается через COALESCE(mf.aircraft_type, s.aircraft_type):
- Приоритет:
fr24_mart.flights(если есть трек за этот день) - Fallback:
fr24_ext.schedule(из Яндекс.Расписаний)
Это гарантирует заполненность колонки даже для дней без RTL-SDR данных.
Dependencies
flask— HTTP serverpsycopg2-binary— PostgreSQL driver
Environment variables
| Variable | Default | Description |
|---|---|---|
POSTGRES_HOST |
required | DB host |
POSTGRES_PORT |
5432 |
DB port |
POSTGRES_DB |
required | DB name |
POSTGRES_USER |
required | DB user |
POSTGRES_PASSWORD |
required | DB password |
API_PORT |
8080 |
Port to listen on |
Run locally
pip install -r requirements.txt
export POSTGRES_HOST=localhost POSTGRES_DB=fr24 POSTGRES_USER=fr24 POSTGRES_PASSWORD=change-me
python main.py
# → http://localhost:8080/health
Build & run via Docker
docker build -t fr24-api .
docker run -p 8080:8080 --env-file ../../compose/.env fr24-api