Feign:Java HTTP客户端库

Feign使得 Java HTTP 客户端编写更方便。Feign 灵感来源于Retrofit、JAXRS-2.0和WebSocket。Feign最初是为了降低统一绑定Denominator到HTTP API的复杂度,不区分是否支持Restful。Feign旨在通过最少的资源和代码来实现和HTTP API的连接。通过可定制的解码器和错误处理,可以编写任意的HTTP API。

feign

主要特点

  • 定制化
  • 提供多个接口
  • 支持JSON格式的编码和解码
  • 支持XML格式的编码和解码

工作机制

Feign通过配置注入一个模板化请求进行工作。只需在发送之前关闭它,参数就可以被直接的运用到模板中。然而这也限制了Feign,只支持文本形式的API,它可以在响应请求方面来简化系统。了解了这一点,这也非常容易进行你的单元测试转换。

基础示例

下面是标准Retrofit的典型用法:

可定制

Feign在一些方面可以定制。举个简单的例子,你可以使用Feign.builder()来构建一个API 接口,包含你自定义的内容。例如:

支持多种接口

Feign可以提供多种API 接口。这些都被定义为Target<T>(默认为 HardCodeTarget<T>)。它允许动态扩展,并且被修饰过的请求会被优先执行。

例如,以下部分可以修饰来自当前身份验证服务的URL和AUTH的每一个请求。

示例

Feign被应用于GitHub维基百科客户端。相似的项目也同样在实践中运用了Feign。尤其是它的示例后台程序

官方网站:https://github.com/Netflix/feign
开源地址:https://github.com/Netflix/feign

 

http://hao.jobbole.com/feign/

猜你喜欢

转载自m635674608.iteye.com/blog/2308513