Простой укротитель ссылок на Go
Укоротитель ссылок предоставляет два типа хранилищ ссылок. Первый оборачивает структуру встроенную структуру данных map
, делая её потокобезопасный. К сожалению, данная реализация не гарантирует надёжного хранения. Поэтому был добавлен второе хранилище на основе Bolt DB, когда персистентность хранения является основным требованием. Ниже приведены гарантии и свойства реализации.
- Потокобезопасность при укорачивании нового URL.
- Время жизни ссылок и базовый URL являются параметром.
- Конфигурация может быть загружена из toml-файла.
- Два типа хранилищ ссылок.
- Гарантируется персистентность укороченных ссылок с хранилищем на Bolt DB.
- Правильная работа за прокси или балансерами.
Чтобы развернуть url-shortener-go
самому c персистентным хранением ссылок достаточно выполнить
./url-shortener --url-storage bolt
Либо зарегистрировать как системный сервис, описанный в systemd unit-файле, и запустить его.
Новый короткий URL создаётся простым запросом к серверу на URI /shorten/
с параметром url
, который содержит укорачиваемый URL.
curl -v -X POST http://localhost:8080/shorten/?url=https://google.com
На запрос приходит ответ с кодом 201(Created) и короткий URL в заговке Location
, который дублируется в теле ответа.
При выполнении запроса на возвращённую короткую ссылку приходит ответ с кодом 302(Found/Moved Temporary) с установленным заголовком Location
, указывающим на оригинальный URL.
curl -v http://localhost:8080/ri0xJwQ6