Проект реализует RESTful API на Go для создания, чтения, обновления, удаления и листинга записей о подписках.
-
CRUDL-операции над записями о подписках:
service_name— название сервиса (строка)price— стоимость месячной подписки в рублях (целое число)user_id— UUID пользователяstart_date— дата начала подписки (форматMM-YYYY)end_date— опционально дата окончания подписки (форматMM-YYYY)
-
Эндпоинт для подсчёта суммарной стоимости подписок за период с фильтрацией по
user_idиservice_name. -
СУБД — PostgreSQL с миграциями для инициализации схемы.
-
Логирование действий и ошибок.
-
Конфигурация через файл
.envилиconfig.yaml. -
Swagger-документация для всех API-методов.
-
Запуск сервиса с помощью Docker Compose.
Примечание: проверка существования пользователя выполняется вне зоны ответственности сервиса; копейки не учитываются.
-
Клонировать репозиторий:
git clone https://github.com/hololotl/EffectiveMobileTest.git
-
Отредактировать параметры подключения к БД и другие настройки в
.env.
docker-compose up --buildСервис будет доступен по адресу http://localhost:8080.
# Параметры приложения
HOST=0.0.0.0
PORT=8080
POSTGRES_USER=postgres
POSTGRES_PASSWORD=2005
POSTGRES_DB=postgres
POSTGRES_HOST=db
POSTGRES_PORT=5432| Метод | Путь | Описание |
|---|---|---|
| GET | /swagger/ |
Swagger UI |
| POST | /add-sub |
Создать новую подписку |
| GET | /get-subs |
Список всех подписок |
| GET | /get-subId |
Получить подписку по id |
| PUT | /edit-sub |
Обновить подписку |
| DELETE | /delete-sub |
Удалить подписку |
curl -X POST http://localhost:8080/add-sub \
-H "Content-Type: application/json" \
-d '{
"service_name": "Yandex Plus",
"price": 400,
"user_id": "60601fee-2bf1-4721-ae6f-7636e79a0cba",
"start_date": "07-2025"
}'После запуска доступна по адресу:
http://localhost:8080/swagger/index.html
Используется библиотека slog
telegram: https://t.me/NetOtveto mail: niyaz_2005l@mail.ru