Skip to content

efremovmi/LinkShortenerApi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LinkShortenerApi

Данный микросервис предоставляет следующий API:

  • Метод Post, который будет сохранять оригинальный URL в базе и возвращать сокращённый;
  • Метод Get, который будет принимать сокращённый URL и возвращать оригинальный URL;

Первый метод доступен по /GetShortUrl. На вход данный метод получает json файл, который содержит один параметр с ссылкой, которую нужно сократить. Длинна ссылки должна быть до 500 символов включительно:

{
  "url":"your link"
}

Метод возвращает сокращенную ссылку, состоящую из 10 символов и статус (200 - http.StatusOK или 201 - http.StatusCreated, если ссылки не было в базе данных).

Второй метод доступен по /FindByShortUrl. Данный метод принимает параметры через свою ссылку (пример: localhost:8000/GetFullUrl?short_url=mKU6ilHEfJ, значение short_url должно быть ровно 10 символов). Метод возвращает полную ссылку и статус (302 - http.StatusFound или 404 - http.StatusNotFound). При возникновении ошибки, сервис вернет ошибку, поясняющую причину неполадки и статус 400 - http.StatusBadRequest.

Также реализован докер образ микросервиса "Link shortener". Ссылка: https://github.com/genridarkbkru/LinkShortenerApi/releases. Запуск контейнера выполняется командой:

    sudo docker run -p 8000:8000 -d -e "FLAG_STORE_WITH_DATABASE=false" --name shortener_link_v1 max/shortener_link:v1

Переменная окружения FLAG_STORE_WITH_DATABASE устанавливает режим работы контейнера:

  • true: контейнер общается в базой данных;
  • false: контейнер хранит информацию в хеш таблицах.

Для поднятия бд предусмотрены миграции (Makefile).

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published