93 lines
2.6 KiB
Markdown
93 lines
2.6 KiB
Markdown
## Настройка и запуск
|
||
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").
|
||
|
||
|