Pet проект для изучения возможностей Golang Url Shortener - сокращатель ссылок
Запуск через Dockerfile:
docker build -t url-shortener .
docker run -p 8080:8080 url-shortener
Стек: Go-1.22, gin, sqlite3, log/slog, cleanenv
Присутствуют unit-тесты:
- router`а Gin с помощью тестового бд (мок с помощью map)
- тестового бд
- sqlite бд
При Post запросе на /add с правильным json, в бд добавляется алиас к нужной ссылке
Позже при запросе на Uri, являющийся алиасом (проверка через бд), пользователю возвращается нужная ему ссылка
На данный момент основная бд - sqlite. TODO: добавить поддержку PostgreSQL
Этот проект помог мне понять основную структуру проектов на Go, базовое использование Gin, логов, конфигураций через .yaml, а также unit-тестирование.