Skip to content

veliashev/web-calculation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Веб-сервис для вычисления арифметических выражений

Контакты

Telegram Telegram: @Auserum

Email: [email protected]

Описание

Этот сервис позволяет пользователям отправлять арифметические выражения через POST-запросы на сервер и получать в ответ рассчитанный результат.

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

Требуется Golang >= 1.23.

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

    git clone https://github.com/veliashev/web-calculation
    
    cd web-calculation
  2. Запустите проект:

    go run ./cmd/main.go
  3. При желании можно воспользоваться командой make:

    make run

По умолчанию сервер будет доступен по адресу http://localhost:8080.

API Endpoint

Сервис имеет один endpoint:

  • URL: /api/v1/calculate

  • Метод: POST

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

    { "expression": "ваше выражение" }
  • Успешный ответ:

    { "result": "результат выражения" }

    Код статуса: 200

  • Ответы с ошибками:

    • Некорректное выражение:

      { "error": "некорректное выражение (подробности...)" }

      Код статуса: 422

    • Внутренняя ошибка сервера:

      { "error": "Internal server error (подробности...)" }

      Код статуса: 500

Примеры использования на порту :8080

Для запросов к серверу можно использовать консольную утилиту curl, можно графические утилиты, навроде Postman. Примеры приведены для curl. Используйте то, что вам удобнее.

По умолчанию используется порт 8080, если у вас он занят, можете сменить его в файле config.json.

Успешное вычисление

curl --location 'http://localhost:8080/api/v1/calculate' --header 'Content-Type: application/json' --data '{"expression": "2+2*2"}'
  • Ответ:

    { "result": 6 }

Некорректное выражение

curl --location 'http://localhost:8080/api/v1/calculate' --header 'Content-Type: application/json' --data '{"expression": "2+2*a"}'
  • Ответ:

    { "error": "недопустимая цифра в выражении" }

Внутренняя ошибка сервера

curl --location 'http://localhost:8080/api/v1/calculate' --header 'Content-Type: application/json' --data '{"expression": 9}'
  • Ответ:

    {
      "error": "json: cannot unmarshal number into Go struct field Request.expression of type string"
    }

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

Запустить тесты CalculationHandler можно с помощью make:

make test

Запустить тесты API можно вручную, параллельно с запущенным сервером запустив скрипт test.sh. В таком случае не забудьте выдать ему полномочия для запуска:

sudo chmod +x ./test/test.sh

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published