ServiceCallHelper
ServiceCallHelper 提供从子服务(Slave Service)向主站(Main Site)发送内部请求的能力,适用于微服务架构下的跨服务调用。
概述
在 Chameleon 微服务架构中,子服务有时需要调用主站提供的内部接口。ServiceCallHelper 封装了这一过程,内部自动处理认证,无需手动管理 Token。
与 OpenApiHelper 的区别
| 特性 | OpenApiHelper | ServiceCallHelper |
|---|---|---|
| 调用方向 | 任意位置 → 主站 OpenAPI | 子服务 → 主站内部接口 |
| 接口类型 | 对外暴露的业务 API | 主站内部接口 |
| 适用场景 | 微服务/脚本调用通用业务 API | 子服务调用主站内部能力 |
| 认证方式 | Token 认证 | 内部服务调用认证 |
API 方法
SystemSlavePostAsync — 向主站发送 POST 请求
// 基础版本,返回 ResponseResult
Task<ResponseResult> SystemSlavePostAsync(string url, object body = null);
// 泛型版本,自动反序列化 data 字段
Task<ResponseResult<TResult>> SystemSlavePostAsync<TResult>(string url, object body = null);
参数说明:
| 参数 | 说明 |
|---|---|
| url | 内部接口路径 |
| body | 请求体(JSON 对象),可选 |
使用示例
基本调用
// 在子服务中调用主站内部接口
var result = await sdk.ServiceCallHelper.SystemSlavePostAsync(
"api/Internal/SomeService/GetData",
new { filter = "active" }
);
泛型返回
// 自动解析响应中的 data 字段
var result = await sdk.ServiceCallHelper.SystemSlavePostAsync<MyDataType>(
"api/Internal/SomeService/GetData",
new { id = "123" }
);
var data = result.Data; // 已反序列化为 MyDataType
注意事项
ServiceCallHelper仅适用于子服务中调用主站内部接口的场景- 如果是调用对外 OpenAPI,请使用 OpenApiHelper
- 内部接口路径由主站定义,具体可用接口需参考主站的内部 API 文档