Categorygithub.com/Ilya-c4talyst/go_calculator
repository
0.0.0-20241216222038-bfcd2bfe0978
Repository: https://github.com/ilya-c4talyst/go_calculator.git
Documentation: pkg.go.dev

# Packages

No description provided by the author
No description provided by the author

# README

Калькулятор

Краткое описание

Данный сервис может использоваться для различных вычислений в двух режимах - онлайн и локальном.

Поддерживаемые операции.

  1. Сложение(+)
  2. Вычитание(-)
  3. Умножение(*)
  4. Деление(/)
  5. Операции приоритета - ()

Настройка проекта

  1. Клонируем репозиторий
  2. Устанавливаем зависимость для чтения .env go get github.com/joho/godotenv
  3. Создаем в корне проекта файл .env и прописываем в нем порт и режим (пример заполнения)
    • port=8088
    • runLocal=0
  4. Запускаем проект с помощью go run cmd/main.go

Локальный режим

В локальном режиме мы запускаем проект и пишем пример в консоль. Сразу же (в той же консоли) получаем ответ на задачу, или ошибку с описанием, если что-то пошло не так

Онлайн режим

Запускается сервер, который принимает запросы на эндпоинт /calc/. В body в поле "expression" мы пишем пример и получаем результат также в виде JSON

На выходе ожидается одно из двух полей:

  1. "result" - результат
  2. "error" - ошибка, если таковая имеется

Примеры запросов

Для запросов рекомендуется использовать программу Postman

Валидный входной JSON:

{
    "expression": "1+1-(2+1)"
}

Результат:

{
    "result": -1,
}

Невалидный входной JSON:

{
    "expression": "1/0"
}

Результат:

{
    "error": "zero divivsion"
}

500-ая ошибка (передали int, например):

{
    "expression": 0
}

Результат:

{
    "error": "InternalServerError"
}

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

Для скриптов calc.go && app.go написаны тесты. Для их запуска нужно перейти в соответствующую директорию и прописать go test -v

Разработчик

  1. Илья Савченко
  2. [email protected]

Технологии

  1. Golang v1.22.1
  2. github.com/joho/godotenv