Сервис каталога треков -- source of truth для метаданных музыкальных треков (название, исполнитель, альбом, длительность, ссылка на аудио). Часть backend-системы плейлистов (аналог Spotify).
| Method |
Path |
Description |
Status codes |
| POST |
/api/v1/tracks |
Создать трек |
201, 400 |
| GET |
/api/v1/tracks/:id |
Получить трек по ID |
200, 400, 404 |
| GET |
/api/v1/tracks?limit=20&offset=0 |
Список треков (пагинация) |
200, 400 |
| PATCH |
/api/v1/tracks/:id |
Обновить трек (partial update) |
200, 400, 404 |
| DELETE |
/api/v1/tracks/:id |
Удалить трек |
204, 400, 404 |
# Поднять инфраструктуру (PostgreSQL, Redis, Kafka)
make docker-up-infra
# Применить миграции
make migrate-up
# Запустить сервис
make run
# Тесты
make test
# Swagger UI: http://localhost:8080/swagger/index.html
| Компонент |
Технология |
| Язык |
Go 1.26 |
| HTTP-сервер |
fasthttp |
| DI |
uber/fx |
| БД |
PostgreSQL 17 (pgxpool) |
| Конфигурация |
Viper |
| Трейсинг |
OpenTelemetry + Jaeger |
| Метрики |
Prometheus + Grafana |
| Логи |
slog (JSON) + Loki |
| CI |
GitHub Actions |