moex-vibe/apps/docs/docs/frontend/api-client.md
Sergey Krylov aac5b2f873
All checks were successful
CI / lint (pull_request) Successful in 1m32s
CI / test (pull_request) Successful in 1m23s
CI / build (pull_request) Successful in 1m27s
CI / lint (push) Successful in 1m16s
CI / test (push) Successful in 1m23s
CI / build (push) Successful in 1m32s
docs: add Docusaurus documentation site as npm workspace
- 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/
2026-06-13 21:37:10 +03:00

1.9 KiB
Raw Blame History

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 — спецификация акции + StockMarketData
  • BondResponse — спецификация облигации + BondMarketData
  • CandleItem, DividendItem, ShareHistoryItem, BondHistoryItem
  • SearchResultItem, HealthResponse

Codegen-типы из OpenAPI в api/types.ts (генерируются через npm run codegen).