All checks were successful
- Create apps/docs/ with Docusaurus 3.7.0 - Add documentation: architecture, backend, frontend, infrastructure, development, ADR - Include 5 Mermaid diagrams (system architecture, request flow, modules, caching, deployment) - Configure as npm workspace with dev:docs/build:docs scripts - Copy existing ADR documents from docs/architecture/adr/
1.9 KiB
1.9 KiB
API Client
Client (api/client.ts)
Использует нативный fetch с единой обёрткой request<T>.
async function request<T>(
path: string,
params?: Record<string, string>,
): Promise<{ data: T; meta: ApiResponseMeta }>
- Формирует URL из
path+ query params - Парсит JSON-ответ в
ApiEnvelope<{ data: T, meta: ApiResponseMeta }> - Выбрасывает
Errorпри HTTP-ошибке
API Functions
| Function | Method | Path |
|---|---|---|
getHealth() |
GET | /api/v1/health |
searchSecurities(q, type?, limit?) |
GET | /api/v1/securities/search |
getShare(secid) |
GET | /api/v1/securities/shares/:secid |
getShareMarketData(secid) |
GET | /api/v1/securities/shares/:secid/marketdata |
getShareDividends(secid) |
GET | /api/v1/securities/shares/:secid/dividends |
getShareHistory(secid, from, till) |
GET | /api/v1/securities/shares/:secid/history |
getBond(secid) |
GET | /api/v1/securities/bonds/:secid |
getBondMarketData(secid) |
GET | /api/v1/securities/bonds/:secid/marketdata |
getBondHistory(secid, from, till) |
GET | /api/v1/securities/bonds/:secid/history |
getShareCandles(secid, interval, from, till) |
GET | /api/v1/securities/shares/:secid/candles |
getBondCandles(secid, interval, from, till) |
GET | /api/v1/securities/bonds/:secid/candles |
Types
Ручные типы ответов в api/responses.ts:
ApiResponseMeta—{ cachedAt, fromCache }ApiEnvelope<T>—{ data: T, meta: ApiResponseMeta }ShareResponse— спецификация акции +StockMarketDataBondResponse— спецификация облигации +BondMarketDataCandleItem,DividendItem,ShareHistoryItem,BondHistoryItemSearchResultItem,HealthResponse
Codegen-типы из OpenAPI в api/types.ts (генерируются через npm run codegen).