Spring RestTemplate与Jersey Rest Client与RestEasy Client比较

18
从客户端应用程序发出异步 REST API 调用,同时更加健壮,哪种实现方式是推荐的?
  1. Sprint RestTemplate
  2. Jersey REST 客户端
  3. RestEasy 客户端
建议使用 Sprint RestTemplate 实现方式。
1个回答

14
以下是一些链接,可以帮助您评估每个客户端所提供的内容。按照我的个人推荐,从最好的到一般的排序,并附上其他比较的链接。

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

RESTEasy 功能列表

RESTEasy 示例还请参见RESTEasy客户端的三种形式

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

Jersey框架不仅仅是JAX-RS参考实现。Jersey提供自己的API,扩展了JAX-RS工具包,增加了其他功能和实用程序,进一步简化了RESTful服务和客户端的开发。Jersey还公开了众多扩展SPI,使开发人员可以根据自己的需要扩展Jersey。

Jersey项目的目标可以总结如下:

  • 追踪JAX-RS API并提供定期发布生产质量的参考实现,该实现与GlassFish一起交付;
  • 提供API以扩展Jersey和建立用户和开发人员社区;并且 - 使使用Java和Java虚拟机构建RESTful Web服务变得容易。

有几个Jersey Connectors可供选择,请参见第5章客户端API5.5客户端传输连接器,而Grizzly看起来是最先进的,特别是因为它正在使用NIO框架来帮助开发人员利用Java™ NIO API,请参见java.net versus java.nio,它与AsyncHttpClient项目一起使用,可能具有您所需的所有功能。

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

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

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

  1. Spring RestTemplate,或用于异步 REST API 调用 [AsyncRestTemplate] 21。请参见Spring 4 AsyncRestTemplate + ListenableFuture 示例,是 Spring Boot starter Restful api 的默认值。之前还没有 RESTEasy Spring Boot starter,直到 PayPal 团队决定创建RESTEasy Spring Boot Starter并与社区共享它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接