2025-05-07 00:25:34 +03:00
2025-05-05 22:50:41 +00:00
2025-05-07 00:25:34 +03:00
2025-05-07 00:25:34 +03:00
2025-05-05 23:30:38 +00:00
2025-05-07 00:25:34 +03:00
2025-05-07 00:25:34 +03:00
2025-05-05 23:30:38 +00:00
2025-05-07 00:25:34 +03:00

Настройка и запуск

  1. Сборка и запуск сервисов (API Server и Worker):

    docker-compose up --build
    

Примеры API запросов (cURL)

1. Отправка (POST /trades)

  • Успешный запрос:

    curl -X POST -H "Content-Type: application/json" -d '{
      "account": "ACC001",
      "symbol": "EURUSD",
      "volume": 1.5,
      "open": 1.0750,
      "close": 1.0780,
      "side": "buy"
    }' http://localhost:8080/trades
    

    Ожидаемый ответ: HTTP/1.1 200 OK (без тела ответа, если не изменено).

  • Запрос с ошибкой валидации (неверный формат symbol):

    curl -X POST -H "Content-Type: application/json" -d '{
      "account": "ACC002",
      "symbol": "eurusd_invalid",
      "volume": 0.5,
      "open": 1.1200,
      "close": 1.1250,
      "side": "sell"
    }' http://localhost:8080/trades
    

    Ожидаемый ответ: HTTP/1.1 400 Bad Request (с телом ошибки, описывающим проблему валидации).

  • Запрос с отсутствующим обязательным полем (например, account):

    curl -X POST -H "Content-Type: application/json" -d '{
      "symbol": "GBPUSD",
      "volume": 1.0,
      "open": 1.2600,
      "close": 1.2650,
      "side": "buy"
    }' http://localhost:8080/trades
    

    Ожидаемый ответ: HTTP/1.1 400 Bad Request.

2. Получение статистики (GET /stats/{acc})

  • Для существующего аккаунта (после обработки заявок Worker'ом): Замените {ACC001} на реальный ID аккаунта.

    curl -X GET http://localhost:8080/stats/ACC001
    

    Ожидаемый ответ (пример):

    {
      "account": "ACC001",
      "trades": 1,
      "profit": 450.00
    }
    
  • Для несуществующего аккаунта или аккаунта без сделок:

    curl -X GET http://localhost:8080/stats/UNKNOWN_ACC
    

    Ожидаемый ответ:

    {
      "account": "UNKNOWN_ACC",
      "trades": 0,
      "profit": 0
    }
    

3. Проверка состояния сервиса (GET /healthz)

curl -X GET http://localhost:8080/healthz

Ожидаемый ответ: HTTP/1.1 200 OK (тело ответа может быть пустым или содержать "OK").

Description
No description provided
Readme 53 KiB
Languages
Go 91.9%
Dockerfile 6.7%
Makefile 1.4%