Skip to content

Фильмотека - REST API для управления базой данных фильмов.

License

Notifications You must be signed in to change notification settings

Max425/film-library

Repository files navigation

Фильмотека - REST API

Это приложение представляет собой REST API для управления базой данных фильмов. Он поддерживает ряд функций, включая добавление, изменение и удаление информации об актерах и фильмах, а также поиск фильмов и актеров, получение списков фильмов и актеров, а также сортировку и фильтрацию результатов.

Технические детали

  • Язык программирования: Golang
  • Хранилище данных: Реляционная СУБД (PostgreSQL) | Redis для хранения сессий
  • Спецификация API: Swagger 2.0/OpenAPI 3.0

Установка и запуск

  1. Установите Docker и Docker Compose, если они еще не установлены.
  2. Склонируйте репозиторий с проектом.
  3. Перейдите в корневую директорию проекта.
  4. Запустите приложение с помощью команды make up.

Использование

После успешного запуска сервера вы можете открыть документацию по API, перейдя по следующему URL: http://localhost:8000/swagger/index.html#/

Приложение использует гексагональную архитектуру, разделенную на три слоя, каждый из которых использует свои модели данных. Сеансы пользователей хранятся в Redis, где для каждой сессии хранится ключ доступа и роль пользователя.

Диаграмма сущностей

image

Аутентификация

API защищено авторизацией. При запуске приложения создаются два пользователя:

  • Обычный пользователь: Логин: user, Пароль: user
  • Администратор: Логин: admin, Пароль: admin

Docker и Docker Compose

Для сборки образа Docker используется Dockerfile, а для запуска окружения с работающим приложением и СУБД - docker-compose файл.

Логирование и мидлвары

Приложение ведет логирование базовой информации об обрабатываемых запросах и ошибках. Также встроены три мидлвары: для обработки паник, логирования и проверки доступа.

Тестирование

Покрытие кода приложения тестами составляет не менее 70%. Для запуска тестов и подсчета покрытия можно использовать команду make tests.

About

Фильмотека - REST API для управления базой данных фильмов.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages