Сервис разработан на языке Go и использует в качестве хранилища PostgreSQL либо In-Memory Storage.
В качестве веб фреймворка используется стандартная библиотека http
и gRPC
. Для PostgreSQL использовал драйвер jackc/pgx
.
Реализованы http
и gRPC
обработчики.
curl http://localhost:8080/?short=eZZHnmHDOc
{"url": "yandex.ru"}
curl -d "@data.json" -H "Content-Type: application/json" -X POST http://localhost:8080/generate
{
"url": "yandex.ru"
}
Ответ:
Content-Type: application/json
{
"short": "eZZHnmHDOc"
}
make build
- первая сборка
make restart
- пересборка
Для того чтобы использовать сервис локально нужно поднять PostgreSQL
на порту 5432
.
Для выбора хранилища использовать флаг --storage=<inmemory/postgres>.
go run cmd/main.go --storage=inmemory
Тестировал через утилиту bloomrpc: