Skip to content

Simple HTTP API with FastAPI, PyTest, PostgreSQL and Docker Compose.

Notifications You must be signed in to change notification settings

amiskov/mindbox_http_api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HTTP API

Задача

В SQL базе данных есть продукты и категории. Одному продукту может соответствовать много категорий, в одной категории может быть много продуктов.

Напишите HTTP API через которое можно получить:

  • список всех продуктов с их категориями,
  • список категорий с продуктами,
  • список всех пар «Имя продукта – Имя категории».

Если у продукта нет категорий, то он все равно должен выводиться. Если у категории нет продуктов, то она все равно должна выводиться.

Проект должен содержать docker-compose.yml файл, через который можно запустить сервис и проверить его работу.

Дополнительно оценим покрытие кода юнит-тестами.

Запуск для разработки

Настройки для разработки можно задать переменными окружения (см. Makefile) или использовать дефолтные из класса конфига:

make run

Запуск в контейнере

Создать файл с настройками .env и запустить Docker Compose:

cp .env.example .env
make up # запустит `docker compose up --build -d`

Open API будет доступен по адресу http://localhost:8000/api/openapi

Тесты

Тесты можно запустить в работающем докер-контейнере:

docker exec $YOUR_CONTAINER_ID pytest /code/app/test_main.py

Для запуска из директории проекта понадобятся зависимости:

pip install -r requirements.txt
make test # запустит `pytest . -sv`

About

Simple HTTP API with FastAPI, PyTest, PostgreSQL and Docker Compose.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published