Skip to content

Latest commit

 

History

History
37 lines (27 loc) · 2.72 KB

README.ru.md

File metadata and controls

37 lines (27 loc) · 2.72 KB

url-shortener-go

Простой укротитель ссылок на Go

Описание

Read in english here.

Укоротитель ссылок предоставляет два типа хранилищ ссылок. Первый оборачивает структуру встроенную структуру данных map, делая её потокобезопасный. К сожалению, данная реализация не гарантирует надёжного хранения. Поэтому был добавлен второе хранилище на основе Bolt DB, когда персистентность хранения является основным требованием. Ниже приведены гарантии и свойства реализации.

  1. Потокобезопасность при укорачивании нового URL.
  2. Время жизни ссылок и базовый URL являются параметром.
  3. Конфигурация может быть загружена из toml-файла.
  4. Два типа хранилищ ссылок.
  5. Гарантируется персистентность укороченных ссылок с хранилищем на Bolt DB.
  6. Правильная работа за прокси или балансерами.

Чтобы развернуть url-shortener-go самому c персистентным хранением ссылок достаточно выполнить

    ./url-shortener --url-storage bolt

Либо зарегистрировать как системный сервис, описанный в systemd unit-файле, и запустить его.

Попробовать здесь.

Методы API

Новый короткий 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