# README
Калькулятор
Краткое описание
Данный сервис может использоваться для различных вычислений в двух режимах - онлайн и локальном.
Поддерживаемые операции.
- Сложение(+)
- Вычитание(-)
- Умножение(*)
- Деление(/)
- Операции приоритета - ()
Настройка проекта
- Клонируем репозиторий
- Устанавливаем зависимость для чтения .env go get github.com/joho/godotenv
- Создаем в корне проекта файл .env и прописываем в нем порт и режим (пример заполнения)
- port=8088
- runLocal=0
- Запускаем проект с помощью go run cmd/main.go
Локальный режим
В локальном режиме мы запускаем проект и пишем пример в консоль. Сразу же (в той же консоли) получаем ответ на задачу, или ошибку с описанием, если что-то пошло не так
Онлайн режим
Запускается сервер, который принимает запросы на эндпоинт /calc/. В body в поле "expression" мы пишем пример и получаем результат также в виде JSON
На выходе ожидается одно из двух полей:
- "result" - результат
- "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
Разработчик
- Илья Савченко
- [email protected]
Технологии
- Golang v1.22.1
- github.com/joho/godotenv