Spring RestTemplate与Jersey Rest Client和RestEasy客户端

Dee*_*thi 13 api rest asynchronous rest-client

对于来自客户端应用程序的异步rest API调用,建议使用以下哪一种实现?

  1. Sprint resttemplate
  2. 泽西休息客户
  3. 休息轻松的客户

Tom*_*omo 7

以下是文档和示例的一些链接,以帮助您评估每个客户提供的内容,从我的个人推荐的降序排列,从最佳到常见以及我找到的其他比较的一些链接.

  1. RESTEasy是一个JBoss项目,是我的第一个选择,因为它具有缓存功能:客户端"浏览器"缓存.支持HTTP 1.1缓存语义,包括对性能有巨大影响的缓存重新验证,而其他客户端实现不提供开箱即用的缓存,您需要编写额外的代码来获取它.RESTEasy提供各种框架来帮助您构建RESTful Web服务和RESTful Java应用程序.它是JAX-RS 2.0规范的完全认证和可移植的实现,JCP规范是通过HTTP协议为RESTful Web服务提供Java API的JCP规范.

RESTEasy功能列表

RESTEasy 示例还可以看到三种形式的RESTEasy客户端

  1. Jersey RESTful Web Services框架是开源的,生产质量的框架,用于在Java中开发RESTful Web服务,提供对JAX-RS API的支持,并用作JAX-RS(JSR 311和JSR 339)参考实现.

Jersey框架不仅仅是JAX-RS参考实现.Jersey提供了自己的API,通过其他功能和实用程序扩展了JAX-RS工具包,以进一步简化RESTful服务和客户端开发.Jersey还公开了许多扩展SPI,以便开发人员可以将Jersey扩展到最适合他们的需求.

泽西项目的目标可归纳为以下几点:

  • 跟踪JAX-RS API并提供GlassFish附带的定期版本的生产质量参考实现;
  • 提供API以扩展Jersey并构建用户和开发人员社区; - 使用Java和Java虚拟机轻松构建RESTful Web服务.

有几个Jersey连接器可供选择,请参阅第5章.客户端API 5.5.客户端传输连接器,而Grizzly看起来是最先进的,特别是因为它使用NIO框架来帮助开发人员利用Java™NIO API,请参阅java.net与java.nio,它与AsyncHttpClient progect一起使用,可能只需要你所需要的一切.

默认情况下,Jersey中的传输层由HttpUrlConnection提供.此传输通过HttpUrlConnectorProvider在Jersey中实现,该HttpUrlConnectorProvider实现特定于Jersey的连接器SPI.您可以在Jersey客户端实现中实现和/或注册自己的Connector实例,这将替换默认的基于HttpUrlConnection的传输层.Jersey提供了几种可立即使用的备用客户端传输连接器实现.

表5.1.Jersey连接器列表传输框架Jersey连接器实现Maven依赖

Jersey vs. RESTEasy:JAX-RS实现比较

  1. Spring RestTemplate或异步休息API调用AsyncRestTemplate参见Spring 4 AsyncRestTemplate + ListenableFuture示例是默认的Spring Boot starter Restful api.在PayPal团队决定创建RESTEasy Spring Boot Starter并与社区分享之前,没有RESTEasy Spring Boot启动器.