api - Spring RestTemplate 与 Jersey Rest Client 与 RestEasy 客户端

标签 api rest asynchronous rest-client

对于来自客户端应用程序的异步 rest API 调用,推荐使用这些实现中的哪一个并且更健壮?

  • Sprint 休息模板
  • 泽西休息客户端
  • 安心客户端
  • 最佳答案

    这里有一些指向文档和示例的链接,以帮助您按照我的个人建议从最佳到常见的降序评估每个客户必须提供的内容,以及一些指向我发现的其他比较的链接。

  • RESTEasy is a JBoss project是我的第一选择,因为它有 Caching Features: Client "Browser" cache. Supports HTTP 1.1 caching semantics including cache revalidation这对性能有巨大影响,而其他客户端实现不提供开箱即用的缓存,您需要编写额外的代码来获取它。 RESTEasy提供各种框架来帮助您构建 RESTful Web 服务和 RESTful Java 应用程序。它是 JAX-RS 2.0 规范的完全认证和可移植实现,JCP 规范通过 HTTP 协议(protocol)为 RESTful Web 服务提供 Java API。

  • RESTEasy 功能列表
  • 可移植到 Tomcat 和许多其他应用服务器
  • 用于 JUnit 测试的嵌入式服务器实现
  • 增强的客户端框架
  • Caching Features: Client "Browser" cache. Supports HTTP 1.1 caching semantics including cache revalidation
  • 服务器内存缓存。本地响应缓存。自动处理 ETag 生成和缓存重新验证
  • 丰富的提供程序集:XML、JSON、YAML、Fastinfoset、Multipart、XOP、Atom 等
  • JAXB 编码到 XML、JSON、Jackson、Fastinfoset 和 Atom 以及映射、数组、列表和 JAXB 对象集的包装器。
  • GZIP 内容编码
  • Asynchronous HTTP (Comet) abstractions for JBoss Web, Tomcat 6, and Servlet 3.0
  • Asynchronous Job Service.
  • 丰富的拦截器模型。
  • OAuth2 和分布式 SSO 与 JBoss AS7
  • S/MIME 和 DOSETA 的数字签名和加密支持
  • EJB、Seam、Guice、Spring 和 Spring MVC 集成
  • 那里没有 RESTEasy Spring Boot starter,所以 PayPal 团队决定创建 RESTEasy Spring Boot Starter并与社区分享。

  • RESTEasy examples另见 Three Forms of RESTEasy Client
  • Jersey RESTful Web Services framework是开源的、生产质量的、用于在 Java 中开发 RESTful Web 服务的框架,它提供对 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 连接器可供选择,请参阅第 5 章。 客户端 API
    5.5.客户端传输连接器同时 Grizzly看起来是最先进的,尤其是因为它使用 NIO 框架来帮助开发人员利用 Java™ NIO API,请参阅 java.net versus java.nio它与 AsyncHttpClient progect 一起使用这可能有你需要的一切。

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

    表 5.1。 Jersey 连接器列表
    传输框架 Jersey Connector 实现 Maven 依赖
  • Grizzly NIO 框架 GrizzlyConnectorProvider org.glassfish.jersey.connectors:jersey-grizzly-connector
  • Apache HTTP client ApacheConnectorProvider org.glassfish.jersey.connectors:jersey-apache-connector
  • Jetty HTTP client JettyConnectorProvider org.glassfish.jersey.connectors:jersey-jetty-connector
  • Netty NIO 框架 NettyConnectorProvider org.glassfish.jersey.connectors:jersey-netty-connector

  • Jersey vs. RESTEasy: A JAX-RS Implementation Comparison
  • Spring RestTemplate或用于异步休息 API 调用 AsyncRestTemplateSpring 4 AsyncRestTemplate + ListenableFuture Example是默认的 Spring Boot starter Restful api。在 PayPal 团队决定创建 RESTEasy Spring Boot Starter 之前,还没有 RESTEasy Spring Boot 启动器。并与社区分享。
  • 关于api - Spring RestTemplate 与 Jersey Rest Client 与 RestEasy 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32337775/

    相关文章:

    ios - Parse.com 应用程序在我获得我想要的值之前继续前进(异步)iOS

    api - 如何使用 WSO2 API Manager 1.10.0 刷新应用程序的访问 token ?

    json - 创建用户帐户时正确的 HATEOAS 响应

    python - 使用 spotipy 提取艺术家流派和歌曲发布日期

    rest - Add->REST API Client... 命令在 VS2015 中失败

    hibernate - 是否可以停止 jpa 中的连接?

    api - Google 日历 API 和 Coldfusion

    java - 使用 Spring Data REST 的 JsonMappingException : Selects wrong serializer when @Id is removed from the list that that is being mapped

    javascript - 为什么我使用异步钩子(Hook) API 会导致 Node.js 异常终止?

    asynchronous - 开始接收/开始读取超时