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。