SongService

module
v0.0.0-...-882e1b3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 17, 2025 License: GPL-3.0

README

Song Service

Song Service — это веб-приложение на Golang, реализующее REST API для управления песнями с поддержкой транзакций, пагинации и внешних API для обогащения данных. Приложение предоставляет документацию с использованием Swagger и поддерживает гибкую конфигурацию через файл .env.

Возможности

  • CRUD-операции: добавление, получение, обновление и удаление песен.
  • Пагинация и фильтрация: эффективная работа со списками песен.
  • Обогащение данных: автоматическое дополнение информации о песнях через внешний API.
  • Транзакции: обеспечение целостности и надёжности данных.
  • Документация API: доступна через Swagger UI.

Структура проекта

.
├── cmd
│   └── main.go              # Точка входа приложения
├── config
│   └── config.go            # Конфигурация из .env
├── database
│   ├── migration.go         # Миграции базы данных
│   └── transaction.go       # Управление транзакциями
├── controllers
│   └── song_controller.go   # Логика обработки запросов
├── models
│   └── song.go              # Модель данных песни
├── routes
│   └── routes.go            # Маршрутизация API
├── docs                     # Swagger-документация
└── .env                     # Файл конфигурации

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

1. Клонирование репозитория
git clone https://github.com/BaikalMine/SongService.git
cd SongService
2. Настройка окружения

Создайте файл .env в корне проекта с содержимым:

DB_USER=postgres
DB_PASSWORD=yourpassword
DB_NAME=songdb
DB_HOST=localhost
DB_PORT=5432
EXTERNAL_API_URL=http://localhost:8081
PORT=8080
2. Запуск приложения
go mod tidy
go build -o songservice ./cmd/main.go
./songservice

Сервис доступен на порту, указанном в файле конфигурации (PORT).

Документация API

Документация Swagger доступна по адресу:

http://localhost:8080/swagger/index.html

Основные эндпоинты

Метод URL Описание
GET /songs Получить список песен (с пагинацией)
GET /songs/{id} Получить информацию о песне по ID
POST /songs Добавить новую песню
PUT /songs/{id} Обновить данные песни по ID
DELETE /songs/{id} Удалить песню

Swagger UI

Swagger UI доступен по адресу:

http://localhost:8080/swagger/index.html

Лицензия

Проект распространяется под лицензией GNU GPLv3.

Directories

Path Synopsis
Package docs Code generated by swaggo/swag.
Package docs Code generated by swaggo/swag.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL