Skip to main content

Module api

Module api 

Source
Expand description

TC 的对外操作,与协议无关

HTTP 和 gRPC 两套接口都只做「协议 ↔ 这一层」的转换,业务判断全在这里。 分成两处写迟早会漂移 —— 而这一层漂移的后果是「同一个请求走 HTTP 被拒、 走 gRPC 却受理了」,这种不一致在事务系统里是要命的。

错误用 ApiError 表达,由各协议层翻译成自己的表示:

ApiErrorHTTPgRPC
BadRequest400INVALID_ARGUMENT
NotFound404NOT_FOUND
Conflict200 + dtm_result=FAILUREFAILED_PRECONDITION
Internal500INTERNAL

Conflict 在 HTTP 上返回 200 是刻意保留的历史行为(已终结的事务再调 abort),换成 4xx 会打破现有客户端。

Structs§

Api
BranchView
RegisterBranch
分支登记请求。TCC 用 confirm/cancel,XA 用 commit/rollback。
TransView

Enums§

ApiError

Type Aliases§

Result