Это приложение представляет собой REST API для управления базой данных фильмов. Он поддерживает ряд функций, включая добавление, изменение и удаление информации об актерах и фильмах, а также поиск фильмов и актеров, получение списков фильмов и актеров, а также сортировку и фильтрацию результатов.
- Язык программирования: Golang
- Хранилище данных: Реляционная СУБД (PostgreSQL) | Redis для хранения сессий
- Спецификация API: Swagger 2.0/OpenAPI 3.0
- Установите Docker и Docker Compose, если они еще не установлены.
- Склонируйте репозиторий с проектом.
- Перейдите в корневую директорию проекта.
- Запустите приложение с помощью команды
make up
.
После успешного запуска сервера вы можете открыть документацию по API, перейдя по следующему URL: http://localhost:8000/swagger/index.html#/
Приложение использует гексагональную архитектуру, разделенную на три слоя, каждый из которых использует свои модели данных. Сеансы пользователей хранятся в Redis
, где для каждой сессии хранится ключ доступа и роль пользователя.
API защищено авторизацией. При запуске приложения создаются два пользователя:
- Обычный пользователь: Логин:
user
, Пароль:user
- Администратор: Логин:
admin
, Пароль:admin
Для сборки образа Docker используется Dockerfile, а для запуска окружения с работающим приложением и СУБД - docker-compose файл.
Приложение ведет логирование базовой информации об обрабатываемых запросах и ошибках. Также встроены три мидлвары: для обработки паник, логирования и проверки доступа.
Покрытие кода приложения тестами составляет не менее 70%. Для запуска тестов и подсчета покрытия можно использовать команду make tests
.