- Поднятие базы данных:
make base
Перед первым запуском приложения:
make migrate
- Docker:
docker build .
- Запуск приложения: (В данном пунке происходит выбор репозитория для хранения данных: оперативная память или postgresql база данных)
docker run --rm --network="host" -e WORKMODE=<memory или db> <app>
Наобходимо реализовать сервис, который должен предоставлять API по созданию сокращённых ссылок следующего формата:
- Ссылка должна быть уникальной и на один оригинальный URL должна ссылаться только одна сокращенная ссылка
- Ссылка должна быть длинной 10 символов
- Ссылка должна состоять из символов латинского алфавита в нижнем и верхнем регистре, цифр и символа «_»
Сервис должен быть написан на Go и принимать следующие запросы по http:
- Метод Post, который будет сохранять оригинальный URL в базе и возвращать сокращённый
- Метод Get, который будет принимать сокращённый URL и возвращать оригинальный URL
Решение должно быть предоставлено в «конечном виде», а именно:
- Сервис должен быть распространён в виде Docker-образа
- В качестве хранилища ожидается использовать две реализации. Какое хранилище использовать, указывается параметром при запуске сервиса: 1) PostgreSQL, 2) Самостоятельно написать пакет для хранения ссылок в памяти приложения
- Покрыть реализованный функционал Unit тестами