freelance-project-34-market.../deps/test-task-2025-06-30-v1/docs/readme.md

88 lines
1.4 KiB
Markdown

# Requirements
Tickers of interest:
- EURUSD
- USDJPY
- GBPUSD
- AUDUSD
- USDCAD
Rest API - https://rates.emcont.com
Schema:
Ticker:
id: foreign_key market
timestamp: datetime
# (ask + bid) / 2
value: decimal
Store up to 30 minutes of recent tickers;
Return via websocket up to 30 minutes of recent tickers;
# AsyncAPI
```yaml
AsyncAPI:
Endpoints:
subscribe:
Request: SubscribeAction
Response: AssetHistoryResponse | AssetTickerResponse
list:
Request: AssetsAction
Response: AssetsResponse
Schema:
SubscribeAction:
action: Literal['subscribe']
message:
assetId: 1
AssetHistoryResponse:
action: Literal['asset_history']
message:
points:
- assetName: EURUSD
time: 1455883484
assetId: 1
value: 1.110481
- assetName: EURUSD
time: 1455883485
assetId: 1
value: 1.110948
- assetName: EURUSD
time: 1455883486
assetId: 1
value: 1.111122
AssetTickerResponse:
action: Literal['point']
message:
assetName: EURUSD
time: 1455883484
assetId: 1
value: 1.110481
AssetsAction:
action: Literal['assets']
message: {}
AssetsResponse:
action: Literal['assets']
message:
assets:
- id: 1
name: EURUSD
- id: 2
name: USDJPY
- id: 3
name: GBPUSD
- id: 4
name: AUDUSD
- id: 5
name: USDCAD
```
# Services:
``` yaml
web:
ports:
- 8080:80
```