Skip to content

Latest commit

 

History

History
67 lines (58 loc) · 4.2 KB

README.md

File metadata and controls

67 lines (58 loc) · 4.2 KB

CERT

Это сервис REST API, реализованный на языке Golang. Сервис предоставляет различные конечные точки для выполнения различных операций, начиная от простого CRUD и заканчивая анализом текста и вычислением хэша на основе запросов. Сервис интегрируется с PostgreSQL и Redis.Также проект покрыт юнит-тестами, тесты написаны для всех слоев.

How to run

Предварительные требования

  • Установленный Docker
  • Установленный Docker Compose

Установка и Запуск приложения

  1. Клонируйте репозиторий проекта на свой компьютер:
git clone https://github.com/zhayt/cert-tz
  1. Перейдите в директорию проекта:
cd ./cert-tz
  1. Запустите приложение с помощью Docker Compose:
docker-compose up --build

или

./scripts/app/run.sh
  1. Чтобы остановить приложение, выполните команду:
docker-compose down

API Endpoints

** Формат обмена данными JSON. Есть Testrequests.http file для проверки работы эндпойнтов**

Swagger документация доступна по адресу http://localhost:8000/swagger/

  1. /rest/substr

    • POST /rest/substr/find - endpoint для нахождения заданной подстроки. Строка передаеться в теле HTTP запроса.
  2. /rest/email

    • POST /rest/email/check - endpoint, которая анализирует тело HTTP запроса и выдает все найденные email адреса.
  3. /rest/iin

    • POST /rest/iin/check - endpoint, которая анализирует тело HTTP запроса и выдает все найденные валидные иин.
  4. /rest/counter

    • POST /rest/counter/add/$i - увеличивает счетчика на ($i), i целое число.
    • POST /rest/counter/sub/$i - уменьшает счетчика на ($i), i целое число.
    • GET /rest/counter/val - выводит текущее значение счетчика.
  5. /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.
  6. /rest/hash

    • POST /rest/hash/calc - Отправляет запрос на вычисление хэша для предоставленных в теле запроса данных. Возвращается уникальный идентификатор запроса.
    • GET /rest/hash/result/$id - Получение результата для запроса с указанным идентификатором ($id). Возвращает "PENDING", если результат еще не вычислен, или хэш-значение, если вычисление завершено. Одновременное вычисления хеша ограничена константой N, N = 3.

Testing

Запуск unit тестов

go test -cover ./...

Перед выполнением тестов для конечных точек /rest/user и /rest/counter, соответственно, убедитесь, что проты 5432 и 6379 не заняты. Поскольку тестконтейнеры будут подниматься на эти порты