# 远程调用标准
远程调用标准用于抽象服务间调用、客户端、服务端和路由存储能力。
# 标准接口
| Standard | 作用 |
|---|---|
ITaxinClientStandard | Taxin 客户端调用标准 |
ITaxinServerStandard | Taxin 服务端标准 |
ITaxinStoreStandard | Taxin 路由与调用信息存储标准 |
# 当前实现
| 模块 | 实现内容 |
|---|---|
Air.Cloud.Modules.Taxin | Taxin 远程调用服务、客户端和存储实现 |
# 使用建议
- 远程调用标准应和服务治理、配置中心配合使用。
- 调用链路中的路由数据应有缓存或持久化策略,避免启动阶段无法发现服务。
# 路由模板参数
Taxin 客户端会在发起请求前,将路由模板中的路径参数绑定到 SendAsync 的 Data 同名属性。例如服务端路由为 Ticket/payload/{Ticket} 时,调用方无需手工拼接 URL:
var result = await taxinClientStandard.SendAsync<RESTfulResult<AccountPayload>>(
"get_account_payload",
new { Ticket = ticket });
绑定规则如下:
- 仅替换
{Ticket}、{Id:int}这类路由模板占位符,不会替换 URL 中的普通同名文本。 - 路径参数会进行 URI 编码;
{*Path}和{**Path}保留路径分隔符,但每个路径段仍会编码。 {Slug?}或服务方法定义为可选的参数,在未提供值时会移除其完整路径段。- 必填参数缺失、为空或路由仍存在未渲染占位符时,客户端会在发送前抛出异常。
Data仍会作为原始请求体发送,以保持现有服务端参数绑定行为。