如何为他人提供微服务SDK包? #
跨项目组合作,通过nuget包+nacos,能够尽可能想同一个项目一样方便调用。
通过官方示例脚手架,示例项目已经有例子,如下:
- 需要让服务方提供微服务调用nuget包,俗称SDK。参考项目
如何定义sdk项目呢?
封装webclient接口
如下面汇率查询接口,默认从nacos中读取相关接口,无需指定服务器地址,其中DemoApi定义在nacos中。
/// <summary> /// 汇率接口 /// </summary> [ApiName("DemoApi")] //ApiName值为空或者不写ApiName属性,api名称默认类名,此处为IExchangeRateApi [TraceFilter(OutputTarget = OutputTarget.Debug)] //debug窗口日志 public interface IExchangeRateApi : IHttpApi { /// <summary> /// 分页获取汇率列表 /// </summary> /// <param name="input"></param> /// <returns></returns> [HttpGet("api/Demo/BaseData/ExchangeRate")] ITask<dynamic> GetList(ExchangeRateListQueryInput input); }
nacos中配置接口地址
只需要在nacos中查找netcore-webapi.json:
新增接口服务调用地址。
注意,您也可以直接调用外部接口,如第三方提供的物流查询等等,都可以通过该方式定义。
如:
"Qyapi":{
"Uri":"https://qyapi.weixin.qq.com"
},
接下来,将该项目打包发布到nuget中。
然后将该nuget包发给你的小伙伴,他就可以直接引用调用啦。
具体调用过程参考:微服务远程调用