OpenFeign曾用名Netflix Feign,最新版本是2018.5发布的9.7.0。
OpenFeign是Java应用中编写Web服务的客户端的利器,基于第三方HTTP客户端类库,声明式地构建Web服务的客户端应用,以调用Web服务。OpenFeign在Java应用中,负责处理与远程Web服务的请求响应,最大限度降低编码复杂性。
1. HTTP客户端类库
OpenFeign默认使用Java的HttpURLConnection作为HTTP请求客户端。
OpenFeign也可以使用类似Jersey/CXF的HTTP客户端类库,编写Java客户端以访问HTTP服务。
OpenFeign也可以直接使用已有公共第三方HTTP客户端类库,如Apache HttpComponents, OKHttp,编写Java客户端以访问HTTP服务。
2. JSON编解码类库
OpenFeign可以采用支持Jackson, Gson两种JSON编解码类库,JSON编解码用法如下:
Feign.builder().encoder(new GsonEncoder())
Feign.builder().decoder(new GsonDecoder())
Feign.builder().encoder(new JacksonEncoder())
Feign.builder().decoder(new JacksonDecoder())
3. XML编解码类库
OpenFeign支持JAXB规范的XML编解码类库,用法如下:
Feign.builder().encoder(new JAXBEncoder())
Feign.builder().decoder(new JAXBDecoder())