Skip to main content

Module http

Module http 

Source
Expand description

HTTP 协议层:把 HTTP 请求翻译成 Api 调用,再把结果翻译成 DTM 的应答格式。

这一层只做协议转换,不做任何业务判断 —— 判断全在 api.rs。 gRPC 层(grpc/server.rs)是它的对偶,两边必须对同一个请求给出同样的受理/ 拒绝结论。否则会出现「同一个请求走 HTTP 被拒、走 gRPC 却受理了」。

这个模块刻意放在 dtmrs-server 而不是二进制 crate 里:早先它写在 main.rs,测试够不着,覆盖率是 0%,而 gRPC 层有 86% —— 防漂移的约束 只有一半受测试保护。搬过来之后 router() 可导出,两边就能用同一组 用例做等价性测试(见 tests/http.rs 的「HTTP 与 gRPC 等价」那几个)。

Structs§

App
axum 的 State 要求 Clone;Api 内部是 Arc,克隆很便宜。

Functions§

router
不带认证的 router(本地/内网用)。要保护请用 router_with_auth
router_with_auth
带登录保护的 router。