Expand description
v1.4.106 codex 1148 F5 (P2): 统一 stock_id ↔ Security 双向解析入口。
C++ 对照:
APIServer_Inner_API.cpp:604GetStockID(Security, &stock_id)— Security → stock_idAPIServer_Inner_API.cpp:669GetAPIStock(stock_id, &Security)— stock_id → Security- 两者底层都查
INNBiz_Qot_SecList::SearchSecBy{Code,ID}, 失败语义清晰 (enReturnRet != Ok即 fail), 不 silent drop。
Rust 早期实装曾把 id_to_key / securities 作为公开索引给 caller
直接读写;当前 StaticDataCache 已把核心索引私有化,写路径统一走
upsert_* / delete_security_info,读路径通过 cache helper 或本 resolver。
这层 resolver 保留的价值是把 “本地 cache miss” vs “backend 真返空” 的
语义显式化,避免 caller 用 filter_map / continue / 空 list 把异常吞成
ret_type=0。
本 module 提供:
- bidir API —
resolve_stock_id_by_security/resolve_security_by_stock_id - loud miss — miss 时 bump counter (
resolver_miss_total), 加 stale mark (复用 mkt_id refresh 路径) - 明确返 enum 区分 hit / miss / unsupported — caller 必处理 miss (要么 reject, 要么 partial marker, 要么 trigger refresh)
当前 caller 边界:
- request-side
Security→ stock_id 路径优先使用 cache helper / resolver fail-closed,例如 GetReference / GetBroker / Warrant / FutureInfo; - push-side backend stock_id → public Security 仍需要按事件类型决定: quote push 可以 partial/drop 并打日志,request/response handler 不能把 miss 投成成功空结果;
- 若新增 caller 需要 stock_id 双向解析,先选本 resolver 或
StaticDataCache::get_security_info_by_stock_id(),不要重新读取底层索引。
Structs§
- Security
Ref - 轻量 Security 引用 (避免 caller 必须用 prost-generated 类型)。
- Security
Resolver - v1.4.106 codex 1148 F5 (P2): 统一 stock_id ↔ Security 双向解析。
Enums§
- Resolver
Err - stock_id ↔ Security 解析失败的原因。