- Клонируйте репозиторий
git clone https://github.com/spanwalla/url-shortener
cd url-shortener
- Создайте файл
.envв корне проекта (можете скопировать .env.example). - Выполните команду
make compose-up
ИЛИ
docker-compose up --build -d
- Для остановки используйте команду
make compose-downИЛИ
docker-compose down --remove-orphans
- Чтобы поменять тип хранилища, измените значение переменной окружения
STORAGE_TYPE(возможные значения:postgres,memory). - Запуск тестов (также настроен в Actions):
make testИЛИgo test -v './...'.
Сервис предоставляет API для создания сокращённых ссылок в формате:
- Ссылка должна быть уникальной, на один URI должна ссылаться только одна сокращённая ссылка.
- Длина сокращённой ссылки равна 10 символам.
- Ссылка состоит из символов латинского алфавита в нижнем и верхнем регистре и символа
_.
Поддерживается два типа хранилища: PostgreSQL и в памяти приложения.
Генерируется случайная последовательность символов.
Почему работает (полное пояснение в config/config.yaml)?
TL;DR: Количество возможных комбинаций настолько велико, что у нас возникнут проблемы даже с хранением 20% от этого объёма.