小米商城网站建设分析,网站建设预算计算方法,百度关键词搜索排名查询,59做网站1 声明式RESTful客户端声明式服务调用的客户端#xff0c;常见有安卓的Retrofit、SpringCloud的Feign等#xff0c;.net有Refit和WebApiClient#xff0c;这些客户端都是以java或.net某个语言来声明接口#xff0c;描述如何请求RESTful api。1.1 WebApiClientWebApiClient由… 1 声明式RESTful客户端声明式服务调用的客户端常见有安卓的Retrofit、SpringCloud的Feign等.net有Refit和WebApiClient这些客户端都是以java或.net某个语言来声明接口描述如何请求RESTful api。1.1 WebApiClientWebApiClient由c#开发但适用于任意.net语言包括c#、vb.net、f#等项目其提供两个nuget包WebApiClient.JIT和WebApiClient.AOT均支持.net framework4.5、.NET Standard 1.3 。WebApiClient.JIT在运行时使用Emit创建Http请求接口的代理类HttpApiClient.Create可以在项目中直接引用WebApiClient.JIT.dll就能使用不适用于不支持JIT技术的平台(IOS、UWP)接口要求为publicWebApiClient.AOT在编译过程中使用Mono.Cecil修改编译得到的程序集向其插入Http请求接口的代理类IL指令这一步是在AOT编译阶段之前完成。代理类型所在的程序集、模块、命名空间与接口类型的一样其名称为$前缀的接口类型名称使用反编译工具查看项目编译后的程序集可以看到这些代理类。项目必须使用nuget安装WebApiClient.AOT才能正常使用没有JIT支持的平台广泛接口不要求为public可以嵌套在类里面1.2 RefitRefit是一个开发很早的项目在github有很高的人气由c#开发目前仅支持c#语言项目支持.NET Standard 1.4.net framework需要4.6.1得以支持。Refit的内部实现与WebApiClient.AOT有相似之处都是在编译阶段向声明接口项目插入接口实现类的代码或IL指令我们可以称之为静态代理的编译时织入。Refit使用Microsoft.CodeAnalysis.CSharp来分析接口语法编译前补充生成接口的代理类代码用来与项目代码一起编译。2 WebApiClient的声明式接口WebApiClient支持GET/HEAD、PUT/POST/DELETE、PATCH请求方法请求内容体支持json、xml、multipart/form-data、application/x-www-form-urlencoded和自定义无结构内容等其声明式接口风格与asp.net core的接口声明非常相似。2.1 接口声明远程服务asp.net core接口示例WebApiClient声明式调用接口3 WebApiClient与DI结合在asp.net core环境中我们可以使用WebApiClient.Extensions项目简单WebApiClient的DI的配置目前有DependencyInjection和HttpClientFactory的扩展等。3.1 WebApiClient.Extensions.DependencyInjection引入nuget包PM install-package WebApiClient.Extensions.DependencyInjection Startup相关配置// This method gets called by the runtime. Use this method to add services to the container.public void ConfigureServices(IServiceCollection services)
{services.AddHttpApiIUsersApi().ConfigureHttpApiConfig((c,p) {c.HttpHost new Uri(https://localhost:5001/);c.FormatOptions.DateTimeFormat yyyy-MM-dd HH:mm:ss.fff;c.LoggerFactory p.GetRequiredServiceILoggerFactory();});...
}Controller3.2 WebApiClient.Extensions.HttpClientFactory引入nuget包PM install-package WebApiClient.Extensions.HttpClientFactory Startup相关配置4 总结本文讲解了声明式客户端的概念、列表几个声明式客户端项目同时讲解声明式客户端WebApiClient在asp.net core项目中的简单使用有关更多高级的应用可以到WebApiClient的github上查看相关wiki。原文地址https://www.cnblogs.com/kewei/p/9786319.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com