Calculator App

Calculator App - это веб-сервис на Go, который позволяет создавать задачи с арифметическими операциями, получать результаты выполнения задач и просматривать список задач с их статусами.

Оглавление

Установка и запуск

  1. Клонируйте репозиторий:

    git clone https://github.com/kupl0xa/calculator.git
    cd calculator
  2. Сборка и запуск:

    make run

    Сервер будет запущен на http://localhost:8080

Запуск в Docker

make docker-run

Сервер будет запущен на http://localhost:8080

API

Создание задачи

Запрос:

POST /tasks

Тело запроса:

{
  "x": 10,
  "y": 5,
  "operator": "+"
}

Команда curl:

curl -X POST http://localhost:8080/tasks -H "Content-Type: application/json" -d '{"x": 10, "y": 5, "operator": "+"}'

Ответ:

{
  "id": 1
}

Получение результата задачи

Запрос:

GET /tasks/{id}

Команда curl:

curl -X GET http://localhost:8080/tasks/1

Ответ:

{
  "id": 1,
  "result": 15
}

Список задач

Запрос:

GET /tasks

Команда curl:

curl -X GET http://localhost:8080/tasks

Ответ:

[
  {
    "id": 1,
    "status": "Completed"
  },
  {
    "id": 2,
    "status": "Pending"
  }
]

Тестирование

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

make test

Покрытие тестами:

make test-cov

Наблюдаемость

Метрики

Метрики доступны по адресу:

http://localhost:8080/metrics

Трейсинг

Для трейсинга используется OpenTelemetry. Трейсы экспортируются в stdout.

Вендоринг зависимостей

Для обеспечения стабильности и воспроизводимости сборки, зависимости проекта добавлены в каталог vendor.