WebApiClient

An open source project based on the HttpClient. You only need to define the c# interface and modify the related features to invoke the client library of the remote http interface asynchronously.

MIT License

Stars
2K
Committers
16

Bot releases are hidden (Show)

WebApiClient -

Published by xljiulang over 5 years ago

  • 修复AutoReturnAttribute在处理json或xml时禁用EnsureSuccessStatusCode无效的问题;
  • 修复nfx下请求完成时,会两次触发dispose掉相关的HttpContent的问题;
  • 请求默认Headers从HttpClient的默认请求头修改转移到HttpApiRequestMessage构造函数;
  • 重构请求和响应的请求头打印输出;
  • 完善IDisposable实现机制,LifetimeHttpApiConfig在GC回收时dispose其相关的HttpClient;
  • 重写HttpApi调试的视图;
  • 增加ClientCredentialsTokenFilter类型;
WebApiClient -

Published by xljiulang over 5 years ago

  • 修复TraceFilter的OutputTarget为LoggerFactory时,消息内容也包含异常信息的问题
  • nfx下初次访问HttpApi对象时,自动设置SecurityProtocol为所有版本
  • 支持到net46并使用Net Standard1.3的api
WebApiClient -

Published by xljiulang over 5 years ago

  • 修复TokenClient序列化表单触发空参数的问题
  • 增加接口异常基类HttpApiException
  • 修改接口异常时抛出异常原始堆栈信息
  • Analyzers增加UriAttribute诊断
  • TraceFilter不追踪上传文件的内容
  • 强制使用内部参数特性修饰HttpContent、IApiParameterable、CancellationToken参数类型
WebApiClient -

Published by xljiulang over 5 years ago

  • 解决Http响应总是被缓存的问题
  • 增加Api缓存策略功能(IApiActionCachePolicyAttribute)
WebApiClient -

Published by xljiulang over 5 years ago

  • 修复[HttpHostAttribue]无效的bug(#63)
  • 修复KeyValueFormattery序列化null值返回了0个元素的问题
  • FornatOptions增加IgnoreNullValue配置选项
  • 优化HttpApi.Create的内部逻辑
  • 修改HttpApiFactory清理线程有可能抛出异常从而引起程序崩溃的可能;
WebApiClient -

Published by xljiulang over 5 years ago

  • 修复编译WebApiClient时,分析器和编译任务并没有自动更新而影响nuget包的正确性问题
WebApiClient -

Published by xljiulang over 5 years ago

  • 增加HttpApi.Create函数调用提示诊断
WebApiClient -

Published by xljiulang over 5 years ago

  • 修复接口间接继承IHttpApi时语法分析无效的问题
  • HttpApiConfig的多个属性赋值null检查
  • HttpApiConfig的HttpHandler属性使用Lazy取代lock
WebApiClient -

Published by xljiulang over 5 years ago

  • 删除AttributeCtorTargets特性
  • 重构分析器项目
  • 增加泛型方法诊断器
WebApiClient -

Published by xljiulang over 5 years ago

  • 修复TraceFilter的OutputTarget包含LoggerFactory而未设置LoggerFactory的空引用异常
  • 修复TraceFilter的OutputTarget为Debug时不生效的问题
  • 重构TraceFilterBaseAttribute,增加TraceMessage类型
WebApiClient -

Published by xljiulang over 5 years ago

移除

  • 移除类型Timeout
  • 移除类型DebugFilterAttribute
  • 移除类型UrlAttribute
  • 移除类型HttpApiClient
  • 移除接口IHttpApiClient
  • 移除HttpApiFactory.Add和Create静态方法

修改

  • 修改TraceFilterAttribute,可指定多个输出目标

增加

  • 增加HttpApi类,取代HttpApiClient、HttpApiFactory.Add和Create静态方法
  • ApiInterceptor增加CreateApiActionDescriptor方法
  • ApiActionDescriptor增加Arguments属性

修复

  • 修复UriEditor在调用AddQuery()之后,再调用Replace()失效的问题
WebApiClient -

Published by xljiulang over 5 years ago

新增功能

  • 公开WebApiClient.Defaults.AnnotationsContractResolver类型;
  • 增加BsonContentAttribute和BsonReturnAttribute的bson请求与bson响应处理;
  • 增加DebugFilterAttribute,以将请求和响应内容输出到Debug窗口;
  • 增加HttpApiFactory非泛型类型;
  • 增加HttpApiFactory.Add支持非泛型类型接口;
  • 增加IResponseCacheProvider和CacheAttribute,配合实现请求和响应的缓存;

移除功能

  • 移除HttpApiConfig的多个静态DefaultXXX属性;
  • 移除IApiParameterAttributeProvider接口;
WebApiClient -

Published by xljiulang over 5 years ago

  • HttpMethodAttribute增加(string)构造器
  • 修改ApiReturnNotSupportedExteption的异常提示描述
  • HttpApiRequestMessage增加GetRequestStringAsync方法
  • 增加JsonMulitpartTextAttribute特性
  • 增加TraceFilterBaseAttribute特性
WebApiClient -

Published by xljiulang over 5 years ago

  • 修复UrlEncodedContent构造器传入HttpConent没有异步等待的bug
  • HttpApiConfig增加IServiceProvider属性
  • ApiActionContext增加GetService方法
  • IHttpApiFactory增加ConfigureHttpApiConfig方法
  • 重构HttpApiFactory<>,以支持IServiceProvider结合使用
WebApiClient -

Published by xljiulang over 5 years ago

  • 修改MulitpartFile文件占用的问题
  • 修复v0.3.1属性值验证不生效的问题
WebApiClient -

Published by xljiulang almost 6 years ago

  • IRetryTask增加WhenCatchAsync的异步异常重试方法
  • TimeoutAttribute支持同于用于修饰参数
  • JsonFormatter和KeyValueFormatter增加Settings属性
  • HttpApiConfig.HttpClient默认禁用ExpectContinue
  • 增加接口返回值验证功能,并在HttpApiConfig中默认启用
WebApiClient -

Published by xljiulang almost 6 years ago

  • TimeoutAttribute恢复int milliseconds构造参数
  • HttpApiFactory支持同一类型接口使用name区分
  • MulitpartFile文件中文名称进行url编码,增加文件上传进度事件
  • HttpResponseFile增加文件下载进度事件,SaveAsAsync重载支持传入CancellationToken
  • WebApiClient.AOT忽略解析依赖项的异常,转为编译提示消息
WebApiClient -

Published by xljiulang almost 6 years ago

  • 增加Timeout值范围检测
  • 反序列化增加类型的DefautlValue
  • 增加RawXxxContentAttribute
WebApiClient -

Published by xljiulang almost 6 years ago

新增的功能

  • PathQueryAttribute增加CollectionFormat属性
WebApiClient -

Published by xljiulang almost 6 years ago

新增的功能

  • HttpApiFactory<>增加公开LifeTime、KeepCookieContainer属性
  • ApiInterceptor增加CreateApiActionContext方法
  • DataTypeDescriptor增加ITaskFactory属性和多个IsXxx属性
  • ApiActionContext增加(IHttpApi, HttpApiConfig, ApiActionDescriptor)构造器
  • ApiActionDescriptor增加(MethodInfo)构造器
  • ApiParameterDescriptor增加构造器(ParameterInfo)构造器
  • ApiReturnDescriptor增加(MethodInfo)构造器

修改的功能

  • ApiActionContext部分属性的get修饰为internal变更为protected
  • ApiActionDescriptor所有属性的get修饰为internal变更为protected
  • ApiParameterDescriptor所有属性的get修饰为internal变更为protected
  • ApiReturnDescriptor所有属性的get修饰为internal变更为protected

重构的功能

  • 重构HttpApiClientProxy,减少缓存查找次数,使用Expression取代反射创建Proxy实例
  • 重构ApiTask,使之可以配合ApiInterceptor提供创建ApiActionContext子类的能力

修复的BUG

  • 修复AOT平台HttpHandlerProvider类型初始化异常的问题
  • 修复AOT平台HttpApiFactory的KeepCookieContainer引起的异常问题
Related Projects