Skip to main content

Module adapter

Module adapter 

Source
Expand description

通用适配器:JSON ↔ Protobuf 转换 + 请求分发

核心思路:

  1. HTTP 请求带 JSON body → 反序列化为 prost Message → encode 为 bytes
  2. 构造 IncomingRequest { proto_id, body } → 调用 RequestRouter::dispatch
  3. 响应 bytes → decode 为 prost Message → 序列化为 JSON 返回

Structs§

ApiResponse
RestState
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-Key header 的 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§

AdminReloadHandler
v1.4.32+ /api/admin/reload 的 handler closure。
AdminStatusProvider
v1.4.32+ /api/admin/status 的后端快照 provider。
CardNumResolver
v1.4.105 D12 (Phase 2): card_num → acc_ids 解析器.
PushHealthSnapshotProvider
v1.4.83 §9 Phase 2 F5: Push channel health snapshot provider.