REST API приложение для управления справочником Организаций, Зданий и Деятельности.
- Python 3.11+
- FastAPI
- SQLAlchemy 2.x (async)
- PostgreSQL
- Alembic
- Docker
Схема базы данных представлена в файле schema.png.
docker-compose up -dПриложение будет доступно по адресу: http://localhost:8000
API документация (Swagger UI): http://localhost:8000/docs Альтернативная документация (ReDoc): http://localhost:8000/redoc
- Установите зависимости:
poetry install-
Создайте файл
.envна основе.env.example -
Запустите PostgreSQL
-
Примените миграции:
poetry run alembic upgrade head- Запустите приложение:
poetry run uvicorn app.main:app --reloadДля доступа к API необходимо передавать API ключ в заголовке:
X-API-Key: your-api-key
По умолчанию (из .env): test-api-key-12345
poetry install --with devТеперь при каждом коммите будут автоматически запускаться линтеры.
Проект использует pytest для тестирования.
make help # Показать все доступные команды
make install # Установить зависимости
make test # Запустить тесты
make lint # Проверить код линтерами
make format # Отформатировать код
make clean # Очистить кеш и временные файлы# Внутри Docker контейнера
docker-compose exec app alembic revision --autogenerate -m "Migration description"
# Локально
poetry run alembic revision --autogenerate -m "Migration description"# Внутри Docker контейнера
docker-compose exec app alembic upgrade head
# Локально
poetry run alembic upgrade head# На один шаг назад
alembic downgrade -1
# До конкретной версии
alembic downgrade <revision>Заполнить базу тестовыми данными:
# Внутри Docker
docker-compose exec app python seed_data.py
# Локально
poetry run python seed_data.py