Сервис для работы с древовидными комментариями, поддерживающий неограниченную вложенность и дополнительные функции - поиск, сортировка и постраничный вывод.
- UI - http://localhost:8080/v1/ui
- Документация API - Swagger - http://localhost:8080/swagger
- Конфиг - config/config.go. Читается из
.envфайла. - Логгер - pkg/logger/logger.go. Интерфейс позволяет подменить логгер.
- Удобная и гибкая конфигурация HTTP сервера - pkg/httpserver/options.go.
Позволяет конфигурировать сервер в конструкторе таким образом:
httpServer := httpserver.New(httpserver.Port(cfg.HTTP.Port))
- В слое контроллеров применяется версионирование - internal/controller/restapi/v1.
Для версии v2 нужно будет просто добавить папку
restapi/v2с таким же содержимым, в файле internal/controller/restapi/router.go добавить строку:
{
v1.NewCommentRoutes(apiV1Group, c, l)
}
{
v2.NewCommentRoutes(apiV1Group, c, l)
}- Graceful shutdown - internal/app/app.go.
- Клонируйте репозиторий
- В корне создайте
.envфайл, скопируйте туда содержимое env.example -cp .env.example .env - Выполните, дождитесь запуска сервиса
make compose-up - Перейдите на http://localhost:8080/v1/ui и пользуйтесь сервисом.
- Перейдите на http://localhost:8080/swagger и ознакомьтесь с API, если хотите взаимодействовать с сервисом вручную или из стороннего сервиса.
Зависимости:
make deps
docker compose down -v:
make compose-down