Tom*_*omo
7
以下是文档和示例的一些链接,以帮助您评估每个客户提供的内容,从我的个人推荐的降序排列,从最佳到常见以及我找到的其他比较的一些链接.
- RESTEasy是一个JBoss项目,是我的第一个选择,因为它具有缓存功能:客户端"浏览器"缓存.支持HTTP 1.1缓存语义,包括对性能有巨大影响的缓存重新验证,而其他客户端实现不提供开箱即用的缓存,您需要编写额外的代码来获取它.RESTEasy提供各种框架来帮助您构建RESTful Web服务和RESTful Java应用程序.它是JAX-RS 2.0规范的完全认证和可移植的实现,JCP规范是通过HTTP协议为RESTful Web服务提供Java API的JCP规范.
RESTEasy功能列表
- 可移植到Tomcat和许多其他app-server
- 用于JUnit测试的可嵌入式服务器实现
- 增强的客户框架
- 缓存功能:客户端"浏览器"缓存.支持HTTP 1.1缓存语义,包括缓存重新验证
- 服务器内存缓存.本地响应缓存.自动处理ETag生成和缓存重新验证
- 丰富的提供程序集:XML,JSON,YAML,Fastinfoset,Multipart,XOP,Atom等.
- JAXB编组为XML,JSON,Jackson,Fastinfoset和Atom,以及地图,数组,列表和JAXB对象集的包装器.
- GZIP内容编码
- JBoss Web,Tomcat 6和Servlet 3.0的异步HTTP(Comet)抽象
- 异步作业服务.
- 丰富的拦截器模型.
- 使用JBoss AS7的OAuth2和分布式SSO
- 使用S/MIME和DOSETA的数字签名和加密支持
- EJB,Seam,Guice,Spring和Spring MVC集成
- 那里没有RESTEasy Spring Boot启动器,所以PayPal团队决定创建RESTEasy Spring Boot Starter并与社区分享.
RESTEasy 示例还可以看到三种形式的RESTEasy客户端
- 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实现比较
- Spring RestTemplate或异步休息API调用AsyncRestTemplate参见Spring 4 AsyncRestTemplate + ListenableFuture示例是默认的Spring Boot starter Restful api.在PayPal团队决定创建RESTEasy Spring Boot Starter并与社区分享之前,没有RESTEasy Spring Boot启动器.