REST‑сервис для учёта онлайн‑подписок пользователей. Тестовое задание для Effective Mobile (Junior Golang Developer).
docker-compose up --buildСервис будет доступен на http://localhost:8080.
- Установите Go 1.26+ и PostgreSQL.
- Создайте БД:
createdb -h localhost -U postgres subscriptions
- При необходимости отредактируйте
config.yaml. - Запустите:
go run ./cmd/api
POST /api/v1/subscriptions– создать подпискуGET /api/v1/subscriptions– список подписок (пагинация)GET /api/v1/subscriptions/:id– получить подписку по IDPUT /api/v1/subscriptions/:id– обновить подпискуDELETE /api/v1/subscriptions/:id– удалить подписку (мягкое удаление)GET /api/v1/analytics/total– суммарная стоимость за период
Примечание: Все запросы валидируются с помощью validator.v10. Сервер поддерживает graceful shutdown.
Подробная документация: http://localhost:8080/swagger/index.html
Используются версионные SQL‑миграции (папка migrations/). Применяются автоматически при старте.
Логи пишутся в stdout в JSON‑формате. Логируются HTTP‑запросы, ошибки, ключевые операции.
curl -X POST http://localhost:8080/api/v1/subscriptions \
-H "Content-Type: application/json" \
-d '{
"service_name": "Yandex Plus",
"price": 400,
"user_id": "60601fee-2bf1-4721-ae6f-7636e79a0cba",
"start_date": "07-2025"
}'Владислав Наумов GitHub blads.vytro@gmail.com