Этот проект реализует веб-сервис для вычисления арифметических выражений. Пользователи могут отправлять математические выражения через HTTP-запросы, а сервис возвращает результат вычисления. Сервис поддерживает базовые арифметические операции: сложение, вычитание, умножение, деление, а также использование скобок для определения приоритетов операций.
.
├── cmd
│ └── main.go # Точка входа приложения
├── internal
│ └── server
│ ├── agent
│ │ ├── agent.go # Логика агента
│ │ └── agent_test.go # Тесты для агента
│ └── orchestrator
│ ├── orchestrator.go # Логика оркестратора
│ └── orchestrator_test.go # Тесты для оркестратора
├── go.mod
- Клонируйте Репозиторий:
git clone https://github.com/Yorshik/final_task_sprint_1.git- Перейдите в Каталог Проекта:
cd final_task_sprint_1- Установите Необходимые Зависимости:
go mod downloadДля запуска веб-сервиса выполните следующую команду из корневого каталога проекта:
go run ./cmd/main.go/Сервис будет доступен по адресу localhost:8080/api/v1/calculate.
Запрос:
curl --location 'localhost/api/v1/calculate' \
--header 'Content-Type: application/json' \
--data '{
"expression": "2+2*2"
}'Ответ:
{
"id": "<уникальный идентификатор выражения>"
}Запрос:
curl --location 'localhost/api/v1/expressions'Ответ:
{
"expressions": [
{
"id": "<идентификатор выражения>",
"status": "<статус вычисления выражения>",
"result": "<результат выражения>"
},
{
"id": "<идентификатор выражения>",
"status": "<статус вычисления выражения>",
"result": "<результат выражения>"
}
]
}Запрос:
curl --location 'localhost/api/v1/expressions/:id'Ответ:
{
"expression": {
"id": "<идентификатор выражения>",
"status": "<статус вычисления выражения>",
"result": "<результат выражения>"
}
}Запрос:
curl --location 'localhost/internal/task'Ответ:
{
"task": {
"id": "<идентификатор задачи>",
"arg1": "<имя первого аргумента>",
"arg2": "<имя второго аргумента>",
"operation": "<операция>",
"operation_time": "<время выполнения операции>"
}
}Реализован простой веб интерфейс, достаточно зайти по адресу localhost:8080 и вы увидите веб дизайн
Для запуска тестов используйте команду:
go test ./...Это запустит все тесты в проекте и отобразит результаты.
