Документаційний репозиторій специфікацій для інтеграції з Lampac:
- схема БД v1 (
docs/specs/db-mapping-v1.sql) - контракт експорту (
docs/specs/lampac-export-contract-v1.md) - OpenAPI (
docs/specs/openapi-lampac-v1.yaml) - OpenAPI schemas (
docs/specs/openapi-lampac-schemas-v1.yaml) - реєстр провайдерів (
docs/specs/provider-registry-v1.yaml) - план міграції (
docs/specs/migration-plan-v1.md) - референсні SQL-експорти для API (
docs/specs/lampac-export-queries-v1.sql)
bash scripts/validate-specs.shЩо перевіряється:
- OpenAPI validation (
@redocly/[email protected]) - Валідність YAML-спек (
provider-registry-v1.yaml,openapi-lampac-v1.yaml,openapi-lampac-schemas-v1.yaml) + семантичні guard-checks для OpenAPI (security,license,operationId,tag.description,server url) - SQL dry-run міграції
db-mapping-v1.sqlна тимчасовій PostgreSQL БД
- Якщо бачиш помилки
No such file or directory ... openapi-lampac-schemas-v1.yaml, перевір що файлdocs/specs/openapi-lampac-schemas-v1.yamlприсутній у репозиторії.
У CI додатково запускаються API unit-тести (pytest) для app.py.
Мінімальна реалізація API знаходиться у app.py і використовує SQL-функції з
docs/specs/lampac-export-queries-v1.sql.
Підтримані endpoint-и MVP:
GET /api/lampac/movie/{tmdb_id}GET /api/lampac/movie/imdb/{imdb_id}GET /api/lampac/series/{tmdb_id}GET /api/lampac/series/{tmdb_id}/season/{season}/episode/{episode}POST /api/lampac/enrich/by-tmdbGET /api/lampac/enrich/jobs/{job_id}Помилки для бізнес-кейсів повертаються у форматі:{"code":"...", "message":"..."}.
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
uvicorn app:app --reload --host 0.0.0.0 --port 8000Перед запуском потрібно застосувати:
docs/specs/db-mapping-v1.sqldocs/specs/lampac-export-queries-v1.sql
та виставити DATABASE_URL (або використовувати дефолт з app.py).
pip install -r requirements-dev.txt
pytest -q