go-broker-test/README.md
2025-05-07 00:25:34 +03:00

93 lines
2.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## Настройка и запуск
1. **Сборка и запуск сервисов (API Server и Worker):**
```bash
docker-compose up --build
```
## Примеры API запросов (cURL)
### 1. Отправка (POST /trades)
* **Успешный запрос:**
```bash
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):**
```bash
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):**
```bash
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 аккаунта.
```bash
curl -X GET http://localhost:8080/stats/ACC001
```
Ожидаемый ответ (пример):
```json
{
"account": "ACC001",
"trades": 1,
"profit": 450.00
}
```
* **Для несуществующего аккаунта или аккаунта без сделок:**
```bash
curl -X GET http://localhost:8080/stats/UNKNOWN_ACC
```
Ожидаемый ответ:
```json
{
"account": "UNKNOWN_ACC",
"trades": 0,
"profit": 0
}
```
### 3. Проверка состояния сервиса (GET /healthz)
```bash
curl -X GET http://localhost:8080/healthz
```
Ожидаемый ответ: `HTTP/1.1 200 OK` (тело ответа может быть пустым или содержать "OK").