如何为他人提供微服务SDK包? #

跨项目组合作,通过nuget包+nacos,能够尽可能想同一个项目一样方便调用。

通过官方示例脚手架,示例项目已经有例子,如下:

  1. 需要让服务方提供微服务调用nuget包,俗称SDK。参考项目

image-20230308232547566

如何定义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:

    image-20230308233634057

    新增接口服务调用地址。

    注意,您也可以直接调用外部接口,如第三方提供的物流查询等等,都可以通过该方式定义。

    如:

    ​ "Qyapi":{

    ​ "Uri":"https://qyapi.weixin.qq.com"

    ​ },

    image-20230308233719720

  • 接下来,将该项目打包发布到nuget中。

    然后将该nuget包发给你的小伙伴,他就可以直接引用调用啦。

    具体调用过程参考:微服务远程调用

上次更新: 3/10/2023, 5:33:48 PM