docker-compose up --build url-short
Для выбора хранилища необходимо задать переменную окружения в файле "docker-compose.yml": environment:
- PG_MEMO=false # хранение ссылок в памяти приложения
- PG_MEMO=true # хранение ссылок в памяти СУБД PostgreSQL
POST: http://localhost:8000/save?url=https://ozon.ru/ где параметру "url" присваивается значение ссылки для сокращения "http://localhost:8000/save?url=https://ozon.ru/" Ответ сервиса: "короткий URL: rRX72HpYk_"
GET: http://localhost:8000/rRX72HpYk_ при переходе по короткой ссылке сервис перенаправит запрос по ориганальной ссылке
Необходимо реализовать сервис, который должен предоставлять API по созданию сокращённых ссылок следующего формата:
- Ссылка должна быть уникальной и на один оригинальный URL должна ссылаться только одна сокращенная ссылка.
- Ссылка должна быть длинной 10 символов
- Ссылка должна состоять из символов латинского алфавита в нижнем и верхнем регистре, цифр и символа _ (подчеркивание)
Сервис должен быть написан на Go и принимать следующие запросы по http:
- Метод Post, который будет сохранять оригинальный URL в базе и возвращать сокращённый
- Метод Get, который будет принимать сокращённый URL и возвращать оригинальный URL
Решение должно быть предоставлено в «конечном виде», а именно:
- Сервис должен быть распространён в виде Docker-образа
- В качестве хранилища ожидается использовать две реализации. Какое хранилище использовать, указывается параметром при запуске сервиса.
- Первое это postgresql.
- Второе - самостоятельно написать пакет для хранения ссылок в памяти приложения.
- Покрыть реализованный функционал Unit-тестами