Expand description
通用适配器:JSON ↔ Protobuf 转换 + 请求分发
核心思路:
- HTTP 请求带 JSON body → 反序列化为 prost Message → encode 为 bytes
- 构造 IncomingRequest { proto_id, body } → 调用 RequestRouter::dispatch
- 响应 bytes → decode 为 prost Message → 序列化为 JSON 返回
Structs§
- ApiResponse
- Rest
State - REST 服务共享状态
Constants§
- MAX_
SYMBOLS_ PER_ REQUEST - v1.4.90 P0-C DoS guard: 单次请求
security_list/code_list/symbols/stocks/symbol_list数组最大长度。
Functions§
- normalize_
json_ keys_ snake_ case - proto_
request - 泛型参数:
- proto_
request_ with_ ctx - codex 0522 F1 v1.4.106 (推荐 API): 带
CallerContext的 proto_request. - proto_
request_ with_ filter - v1.4.104 阶段 7-1: 走 FilterRegistry 的 proto_request 变体.
- proto_
request_ with_ idempotency - v1.4.38 Phase 4: 支持
Idempotency-Keyheader 的 proto_request。 老 call site 继续用proto_request(header=None), 新写 trade endpoint 用proto_request_with_idempotency从 axum HeaderMap 提取 header 后传入。 - proto_
request_ with_ idempotency_ and_ caller - v1.4.106 codex 0920 F1 (P1): 支持 caller key id 的 idempotency 变体. 让 cache namespace 跨 caller 隔离 — 不同 caller 用同 Idempotency-Key 不能 跨 caller 命中老 response (避免跨账户数据泄漏 + 重复下单).
Type Aliases§
- Admin
Reload Handler - v1.4.32+
/api/admin/reload的 handler closure。 - Admin
Status Provider - v1.4.32+
/api/admin/status的后端快照 provider。 - Card
NumResolver - v1.4.105 D12 (Phase 2): card_num → acc_ids 解析器.
- Push
Health Snapshot Provider - v1.4.83 §9 Phase 2 F5: Push channel health snapshot provider.