- Ссылка должна быть уникальной и на один оригинальный URL должна ссылаться только одна сокращенная ссылка.
- Ссылка должна быть длинной 10 символов.
- Ссылка должна состоять из символов латинского алфавита в нижнем и верхнем регистре, цифр и символа _ (подчеркивание).
Сервис должен принимать следующие запросы по http:
- Метод Post, который будет сохранять оригинальный URL в базе и возвращать сокращённый.
- Метод Get, который будет принимать сокращённый URL и возвращать оригинальный URL.
- Сервис должен быть распространён в виде Docker-образа.
- В качестве хранилища ожидается использовать in-memory решение и postgresql. Какое хранилище использовать указывается параметром при запуске сервиса.
- Покрыть реализованный функционал Unit-тестами.
docker-compose build urllist-app
Для запуска в режиме postgresql указать переменную окружения MEM_MODE:
docker-compose run -e MEM_MODE=POSTGRES -p 8000:8000 urllist-app
По-умолчанию запуск в режиме in-memory:
docker-compose run -p 8000:8000 urllist-app
- Исправить запуск контейнера с postgre при запуске в режиме in-memory.
- Тест
postgres.go
проводится на запущенной БД. Использовать ory/dockertest. - Миграции БД.
- Добавить Makefile.