Skip to content

gingersamurai/go-shortener

Repository files navigation

go-shortener

Сокращатель ссылок, реализованный на языке Go

Установка и конфогурация

  • Склонировать репозиторий:
    git clone https://github.com/gingersamurai/go-shortener.git
    
  • Настроить конфигурацию в файле config.yaml
  • Настроить переменные окружения
    • в файле .app_env для контейнера с сервисом
    • в файле .postgres_env для контейнера с базой данных
  • Запустить docker compose
    docker compose up

Использование

Сервис поддерживает 2 эндпоинта:

  • GET /{mapping} перенаправляет пользователя с сокращенной ссылки на целевую
  • POST /shorten принимает в body целевую ссылку и возвращает сокращенную

С документацией можно ознакомиться в файле openapi.yaml

Graceful shutdown

Если на сервер будет отправлен сигнал SIGINT или SIGTERM, он начнет завершение работы. Graceful shutdown реализован с использованием паттерна closer

Архитектура

Сервис написан с использованем чистой архитектуры. Вся бизнес-логика расположена в папках internal/entity и internal/usecase. С архитектурой приложения можно ознакомиться по ссылке