Приложение представляет собой REST API сервис для онлайн выставки котят и предоставляет стандартный набор CRUD-операций для работы с базой данных.
- Котёнок
id
: intcolor
: str - цвет котёнкаage
: int - возраст котёнка в месяцахdescription
: str | None - описание котёнка (необязательный параметр)breed_id
: int - id породы котёнка (в базе данных является внешним ключом)
- Порода
id
: intname
: str - название породы
Сервис предоставляет следующие эндпоинты:
'GET' /api/v1/breeds
— получить список всех пород с их id'GET' /api/v1/kittens[&filter_breed_id={id}]
— получить список всех котят. Позволяет указать опциональный параметр "filter_breed_id" для фильтрации списка котят по их породе'GET' /api/v1/kittens/{id}
— получить информацию по конкретному котёнку'POST' /api/v1/kittens
— создать новую запись о котёнке'PATCH' /api/v1/kittens/{id}
— изменить запись о котёнке'DELETE' /api/v1/kittens/{id}
— удалить запись о котёнке
Проект написан с использованием Python 3.12 и следующих библиотек:
- fastapi 0.115.0
- SQLAlchemy 2.0.35
- asyncpg 0.29.0
- uvicorn 0.31.0
Полный список можно посмотреть в файле requirements.txt
.
Для запуска приложения потребуется Docker.
- Клонировать репозиторий
git clone https://github.com/IlyaBag/kitten-show.git
- Создать файл с переменными окружения
Для этого можно переименовать файл example.env_docker
в .env_docker
вручную или в UNIX-подобных системах использовать команду
mv example.env_docker .env_docker
Далее нужно отредактировать файл: в параметре DB_HOST
заменить символы <dir_name>
на имя директории, в которую был склонирован проект, заменив все строчные символы названия прописными (проще говоря, все буквы должны быть маленькими)
- Запустить сервисы приложения и базы данных командой
docker compose up
После запуска приложение будет доступно локально по адресу http://127.0.0.1:8000/.
Протестировать приложение можно с помощью Swagger UI, доступного по адресу http://127.0.0.1:8000/docs