pub async fn modify_order(
__arg0: State<RestState>,
rec: Option<Extension<Arc<KeyRecord>>>,
headers: HeaderMap,
__arg3: Json<Value>,
) -> Result<Json<Value>, (StatusCode, Json<Value>)>Expand description
POST /api/modify-order — 改单/撤单
v1.2:和 place_order 类似但 ModifyOrder protobuf 给不出 symbol/qty/value
(只有 order_id),只能做 market 白名单 + hours 检查;symbol/value/side
留空让 check_full_skip_rate 自动跳过。
响应语义(v1.4.111 P2-5 doc 沉淀,对齐 C++ APIServer_Trd_ModifyOrder by-design):
ret_type=0 仅表示 backend 接受了 modify 操作 (operation ACK), 不是最终成交 /
撤单状态证明;最终状态仍来自 UpdateOrder push 或后续查询。
正确 client pattern (ack-based):
- modify-order 返
ret_type=0→ assume backend 接受 - wait push event (REST
/ws订阅 trade notify) 或 retry query - 单笔 CancelOrder 成功时,Rust 额外在返回 ACK 前做 bounded authoritative
orders refresh;这不是本地 patch,也不改变 ACK 语义,只是缩短
/api/orders立即读到 stale cache 的窗口。can_sell_qty仍以后续交易 push 或显式refresh_cache=true持仓查询为准。