Это сервис REST API, реализованный на языке Golang. Сервис предоставляет различные конечные точки для выполнения различных операций, начиная от простого CRUD и заканчивая анализом текста и вычислением хэша на основе запросов. Сервис интегрируется с PostgreSQL и Redis.Также проект покрыт юнит-тестами, тесты написаны для всех слоев.
- Установленный Docker
- Установленный Docker Compose
- Клонируйте репозиторий проекта на свой компьютер:
git clone https://github.com/zhayt/cert-tz
- Перейдите в директорию проекта:
cd ./cert-tz
- Запустите приложение с помощью Docker Compose:
docker-compose up --build
или
./scripts/app/run.sh
- Чтобы остановить приложение, выполните команду:
docker-compose down
Swagger документация доступна по адресу http://localhost:8000/swagger/
-
/rest/substr
- POST /rest/substr/find - endpoint для нахождения заданной подстроки. Строка передаеться в теле HTTP запроса.
-
/rest/email
- POST /rest/email/check - endpoint, которая анализирует тело HTTP запроса и выдает все найденные email адреса.
-
/rest/iin
- POST /rest/iin/check - endpoint, которая анализирует тело HTTP запроса и выдает все найденные валидные иин.
-
/rest/counter
- POST /rest/counter/add/$i - увеличивает счетчика на ($i), i целое число.
- POST /rest/counter/sub/$i - уменьшает счетчика на ($i), i целое число.
- GET /rest/counter/val - выводит текущее значение счетчика.
-
/rest/user
- POST /rest/user - Создает нового пользователя с полями first_name и last_name. Возвращает идентификатор, присвоенный пользователю.
- GET /rest/user/:id - Достает пользователя (first name, last name).
- PUT /rest/user/:id - Обновляет пользователя по индентификатору i, данные передается в теле HTTP запроса.
- DELETE /rest/user/:id - Удоляет пользователя по индентификатору i.
-
/rest/hash
- POST /rest/hash/calc - Отправляет запрос на вычисление хэша для предоставленных в теле запроса данных. Возвращается уникальный идентификатор запроса.
- GET /rest/hash/result/$id - Получение результата для запроса с указанным идентификатором ($id). Возвращает "PENDING", если результат еще не вычислен, или хэш-значение, если вычисление завершено. Одновременное вычисления хеша ограничена константой N, N = 3.
Запуск unit тестов
go test -cover ./...
Перед выполнением тестов для конечных точек /rest/user и /rest/counter, соответственно, убедитесь, что проты 5432 и 6379 не заняты. Поскольку тестконтейнеры будут подниматься на эти порты