- docker
- make
- Clone project:
git clone [email protected]:vlasashk/url-shortener.git
cd url-shortener
- Run:
make run-all
- Test:
make unit-test
- Alias имеет ограниченный срок жизни (1 месяц)
- Каждые 100 посещений обновляют срок жизни alias на 1 месяц
- Для очистки старых записей, у которых закончился срок жизни, используется cronjob сервис. В конфиге можно контролировать частоту выполнения запроса на удаление не актуальных записей раз в день/неделю/месяц
- PostgreSQL as database
- jackc/pgx package as toolkit for PostgreSQL
- go-chi/chi package as router for building HTTP service
- rs/zerolog package for logging
- stretchr/testify package for testing
- vektra/mockery package for mock generation
- Docker for deployment
- {POST} /alias - Создание alias
{ "original": "https://test.com", }
- {GET} /{alias} - Получение оригинальной ссылки по alias (редирект)