Этот API позволяет вам выполнить следующую задачу
- добавить информацию об актёре (имя, пол, дата рождения),
- измененить информацию об актёре.
- Есть возможность изменит любую информацию об актёре, как частично, так и полностью
- удаление информации об актёре
- добавить информацию о Фильме (имя, пол, дата рождения),
- измененить информацию о фильме.
- получение списка фильмов с возможностью сортировки по названию, по рейтингу, по дате выпуска. По умолчанию используется сортировка по рейтингу (по убыванию),
- Есть возможность изменит любую информацию о фильме, как частично, так и полностью
- поиск фильма по фрагменту названия, по фрагменту имени актёра
- получение списка актёров, для каждого актёра выдаётся также список фильмов с его участием,
-
АПИ поддерживает две роли пользователей
-
обычный пользователь и администратор.
-
Обычный пользователь имеет доступ только на получение данных и поиск,
-
администратор - на все действия. можно считать, что соответствие пользователей и ролей задаётся вручную (например, напрямую через БД).
-
Документация Swagger доступна на сайте: https://api.rtprnshukla.ru/docs
-
Панель мониторинга Grafana для метрик, доступна на сайте: https://monitor.rtprnshukla.ru/
-
Метрики от Prometheus можете здесь посмотреть https://monitor.rtprnshukla.ru/metrics
-
АПИ доступен по сайту: https://api.rtprnshukla.ru/
(Проверка работоспособности отображается, если мы открываем сайт без метода)
-
Панель управления pgAdmin доступна на сайте: https://pgadmin.rtprnshukla.ru/
-
Сначала прочтите это
- Установка и - Использование
- Мониторинг: Сервис использует prometheus/grafana для сбора метрик из различных эндпойнты
- OpenAPI/Swagger: Сервис использует спецификацию OpenAPI/Swagger для лучшего тестирования и документирования
- Интеграционный/Юнит тест: Сервис использует CUTE для упрощения создания тестов
- Allure reports: Сервис использует отчеты Allure для упрощения просмотра отчетов.
- Бэкенд: Go (net/http)
- Базы данных: GORM с PostgreSQL (локальная)
- Интеграционный тест: CUTE
- Юнит тесты: httptest
- Электронная почта: resend для отправки alerts из grafana
- Генерация метрики: Prometheus
- Мониторинг: Grafana для визуализации
- Allure: для визуализации отчетов об испытаниях
- Аутентификация пользователей: Использовал Jwt
- Git Хуки: Использовал husky
- Linting: Использовал golang-ci-lint
- Hot-Reload- Использовал air
- Makefile - Добавил возможность установки сервиса с помощью makefile вместе с docker
- Коллекции- Добавил коллекции для Postman и thunderclient
- Deployment: Docker, Docker-compose
- CI/CD: Github Actions, Gitlab
При запросе сервера prometheus в grafana добавьте
https://prometheus:9090
Убедитесь, что в вашей системе установлен allure
Руководство по установке allure
https://allurereport.org/docs/gettingstarted-installation/
- Чтобы запустить тесты сделайте
go test ./test/...
- Чтобы генерирует allure report, сделайте
allure generate
- Чтобы увидет allure report, запустите
allure serve
в директорииtest