Categorygithub.com/Vic07Region/musicLibrary
repository
0.0.0-20241125192714-e0630c66ef00
Repository: https://github.com/vic07region/musiclibrary.git
Documentation: pkg.go.dev

# Packages

No description provided by the author
No description provided by the author

# README

MusicLibrary service

в рамках тестовой задачи

описание задания лежит в tz readme_tz

Пример dotenv

  • .env - для продакшен
  • .env.local - для локальной разработки
#APP HOST PARAM
APP_HOST=:8080

DEBUG=TRUE
PRODUCTION=TRUE

#THIRD API SERVICE BASE URL
API_BASEURL=http://example.com/api


#database env param
DB_USER=postgres
DB_PASSWORD=password
DB_NAME=dbname
#DB_HOST=localhost
#DB_PORT=5432
#DB_SSLMODE=disable
#DB_ROOTSERT=./path/to/root/cert

DB_MAX_CONN=80
DB_MAX_IDLE=5
DB_MAX_LIFETIME=10
#minute

DB_DRIVER=postgres
MIGRATION_DIRS=./migrations

## закомоентированные поля не обязательны к заполнению

присутствует makefile

Доступные команды:

* install-deps   Устанавливает зависимости проекта"
* get-deps       Загружает зависимости проекта"
* build          Собирает проект"
* run           Запускает проект"
* clean          Очищает сгенерированные файлы"
* swag-docs      Генерирует документацию swagger"

Endpoints

  • /api/v1 - root api
  • /api/v1/songs GET список песен
  • /api/v1/songs/{id} GET получение текста песни
  • /api/v1/songs/{id} DELETE удаление песни
  • /api/v1/songs/{id} PATCH изменение песни
  • /api/v1/songs/{id}/verse PATCH изменение куплета песни
  • /api/v1/songs/new POST создание песни
  • /info GET демо ручка для тестирования NewSong

Swagger info

swagger_UI swagger_json

Карта проекта:

  • cmd/main.go точка входа

  • internal/connector/songinfo запрос к другому api для получения подробной информации о песне

  • internal/database слой бд для выполнения запросов к базе

  • internal/database/migrator мигратор бд

  • internal/database/migration миграции

  • internal/service сервисный слой

  • internal/app слой gin, endpoint,mw и др

  • internal/lib/logger логгер

  • internal/pkg/app инициализцаия

  • docs сгенерированные сваггером документы