Skip to content

Yorshik/final_task_sprint_1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Веб-сервис Арифметических Вычислений

Описание

Этот проект реализует веб-сервис для вычисления арифметических выражений. Пользователи могут отправлять математические выражения через HTTP-запросы, а сервис возвращает результат вычисления. Сервис поддерживает базовые арифметические операции: сложение, вычитание, умножение, деление, а также использование скобок для определения приоритетов операций.

Структура Проекта

.
├── cmd
│   └── main.go              # Точка входа приложения
├── internal
│   └── server
│       ├── agent
│       │   ├── agent.go     # Логика агента
│       │   └── agent_test.go # Тесты для агента
│       └── orchestrator
│           ├── orchestrator.go # Логика оркестратора
│           └── orchestrator_test.go # Тесты для оркестратора
├── go.mod

Принцип работы программы

Принцип работы программы

Установка

  1. Клонируйте Репозиторий:
   git clone https://github.com/Yorshik/final_task_sprint_1.git
  1. Перейдите в Каталог Проекта:
   cd final_task_sprint_1
  1. Установите Необходимые Зависимости:
   go mod download

Запуск Проекта

Для запуска веб-сервиса выполните следующую команду из корневого каталога проекта:

go run ./cmd/main.go/

Сервис будет доступен по адресу localhost:8080/api/v1/calculate.

API документация

1. Добавление вычисления арифметического выражения

Запрос:

curl --location 'localhost/api/v1/calculate' \
--header 'Content-Type: application/json' \
--data '{
  "expression": "2+2*2"
}'

Ответ:

{
    "id": "<уникальный идентификатор выражения>"
}

2. Получение списка выражений

Запрос:

curl --location 'localhost/api/v1/expressions'

Ответ:

{
    "expressions": [
        {
            "id": "<идентификатор выражения>",
            "status": "<статус вычисления выражения>",
            "result": "<результат выражения>"
        },
        {
            "id": "<идентификатор выражения>",
            "status": "<статус вычисления выражения>",
            "result": "<результат выражения>"
        }
    ]
}

3. Получение выражения по его идентификатору

Запрос:

curl --location 'localhost/api/v1/expressions/:id'

Ответ:

{
    "expression": {
        "id": "<идентификатор выражения>",
        "status": "<статус вычисления выражения>",
        "result": "<результат выражения>"
    }
}

4. Получение задачи для выполнения

Запрос:

curl --location 'localhost/internal/task'

Ответ:

{
    "task": {
        "id": "<идентификатор задачи>",
        "arg1": "<имя первого аргумента>",
        "arg2": "<имя второго аргумента>",
        "operation": "<операция>",
        "operation_time": "<время выполнения операции>"
    }
}

Веб

Реализован простой веб интерфейс, достаточно зайти по адресу localhost:8080 и вы увидите веб дизайн

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

Для запуска тестов используйте команду:

go test ./...

Это запустит все тесты в проекте и отобразит результаты.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors