2020-05-25 17:33:16 版本 : 服务间调用接口的神器——WebApiClient.JIT
作者: 余承浩 于 2020年05月25日 发布在分类 / 人防组 / 人防后端 下,并于 2020年05月25日 编辑
 历史版本

修改日期 修改人 备注
2020-05-25 17:34:15[当前版本] 余承浩 格式调整
2020-05-25 17:33:16 余承浩 创建版本

WebApiClient.JIT 简介

一款集高性能高可扩展性于一体的声明式Http客户端库,特别适用于微服务的restful资源请求,也适用于各种畸形http接口请求。

使用方法

  • 打开Nuget类库引用类库WebApiClient.JIT
  • 创建你的接口

[TraceFilter(OutputTarget = OutputTarget.Debug | OutputTarget.Console)]
    public interface IAdminService : IHttpApi
    {
        #region 根据用户的名称唯一标识列表获取对应的通知对象
        /// <summary>
        /// 根据用户的名称唯一标识列表获取对应的通知对象
        /// </summary>
        /// <returns></returns>
        [HttpPost("/Admin/api/services/Admin/Users/GetAccountIdByUserDisName")]
        public Task<List<string>> GetAccountIdByUserDisName ([JsonContent] List<string> UserDisName);
        #endregion
    }
接口必须是public访问修饰符,必须继承  IHttpApi  

  • 在startup.cs文件中的ConfigureServices方法内,注册该接口

            services.AddHttpApi<IAdminService>();
            services.ConfigureHttpApi<IAdminService>(o =>
            {
                o.HttpHost = new Uri(Configuration["WebApiCientHost:GateWay"]);
            });
  • 使用的时候通过依赖注入的方式可以获得IAdminService对象
  • 调用方式简单粗暴

        Accounts = _adminService.GetAccountIdByUserDisName(new List<string>{"1"}).Result;

还支持观察者模式的链式调用,具体详细的文档可以点击下方链接查看https://github.com/dotnetcore/WebApiClient/wiki/WebApiClient%E5%9F%BA%E7%A1%80

总结

几天使用下来,最直观的感受就是,代码的可维护性、可读性、复用性大大增强,同样的接口可能需要被多个服务调用,封装成一个类库,多个系统引用即可,数据结构有变动,只需要更新类库,方便快捷,实乃居家旅行必备良药

历史版本-目录  [回到顶端]
    知识分享平台 -V 4.8.7 -wcp