【问题标题】:A better alternative to Jersey/Jackson for building JSON REST APIs? [closed]用于构建 JSON REST API 的 Jersey/Jackson 的更好替代方案? [关闭]
【发布时间】:2012-03-19 04:42:21
【问题描述】:

我需要构建 JSON-REST API 的服务器端,并且我一直在使用 Jersey 来完成它(使用它的 JSON-POJO 映射功能)。

问题在于,即使是测试最简单的用例,也需要在 SO 上提出几个问题,并且需要大量的寻找。简而言之,它不是像 JSoup 这样的非常流畅的 API,它似乎是一个来自一切都是 XML 的时代的工具,然后它被改造为 JSON。

您可以看到这一点,例如,POJO 对象需要使用 @XmlRootElement 注释,即使我所做的没有涉及 XML。

我想知道是否还有其他库,也许是更新的,我应该考虑使用它可能比 Jersey 更容易使用?

【问题讨论】:

  • 是的!是的!为了上帝的爱,是的!我现在一遍又一遍地问同样类型的问题,但我几乎没有得到任何回应。我什至放弃了 300pt 的赏金,但仍然一无所获:hereAnd this one was fun.。我不知道为什么我们还没有绑定 Java 中的 Web 服务。

标签: java json rest jersey jackson


【解决方案1】:

你可以试试JEST,它适用于OpenJPA

【讨论】:

    【解决方案2】:

    这是一个偏见的答案,但我们一直在为我们所有的企业和社交应用程序使用 Snow,它非常轻量级,完全基于 Guice,并允许您将任何 REST 调用绑定到任何 Java 方法(对象托管吉斯)。非常灵活和简单。

    http://britesnow.com/snow

    我是这个微框架的创建者,所以,我很想得到您的反馈。

    【讨论】:

      【解决方案3】:

      Jersey 可以使用 Jackson 将 POJO 序列化为 JSON,而无需任何注释。您可以通过将JSONConfiguration.FEATURE_POJO_MAPPING 属性设置为true 来进行配置。

      web.xml中,添加如下servlet init参数:

      <init-param>
          <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
          <param-value>true</param-value>
      </init-param>
      

      See the Jersey documentation

      【讨论】:

      【解决方案4】:

      因为NimChimpsky mentionedrestlet 会开箱即用。此外,如果您的客户端也是 java,您可以将功能抽象到接口中,并相当容易地用客户端代理包装它。这个教程页面展示了如何做我提到的here

      【讨论】:

        【解决方案5】:

        注意:我是EclipseLink JAXB (MOXy) 的负责人,JAXB (JSR-222) 专家组的成员和Jersey 项目的贡献者。

        对于 Jersey 或任何 JAX-RS 项目,您可以使用 MessageBodyReader/MessageBodyWriter 来完全控制您的 JSON 绑定。下面是一个使用这种机制来利用 MOXy 作为 JSON 提供程序的示例。

        【讨论】:

          【解决方案6】:

          用于将 json 转换为 pojos :gsonjackson。对于Restful,我会使用spring,或restlet

          【讨论】:

          • 是的,我对 Gson 非常熟悉,Jersey 已经在使用 Jackson,但是将 JSON 与 POJO 相互转换只是问题的一部分,我正在寻找 Jersey 的替代方案,它是一个用于构建 REST-HTTP API 的框架。如果存在的话,我更喜欢使用 Gson 而不是 Jersey 的 HTTP 框架,因为我更喜欢它。
          • 清晰干净的答案。这就是我一直在寻找的
          • SpringBoot 一路:D
          【解决方案7】:

          我强烈推荐 JBoss RESTEasy 用于 REST API。我在几个项目中使用过它,发现它的设置很简单。如果您需要,它还可以很好地与 Spring 集成。

          我已经使用 Jackson 和 Gson 来支持 RESTEasy 的 JSON,这非常简单。您所做的只是使用 JAXB 注释对 POJO 进行注释并包含适当的库。

          RESTEasy 另一个非常棒的部分是对多部分表单数据的良好支持。它们提供了一个 @MultipartForm 注释,允许您将多部分表单绑定到 POJO,而无需编写任何代码......工作很流畅。

          我建议不要将 Spring MVC 用于 REST,因为它不符合 JAX-RS。如果您决定在以后切换到不同的实现,使用符合 JAX-RS 的接口可以为您提供更好的可移植性。

          【讨论】:

          • 嗯,我不确定,看起来它希望部署在 war 文件中,我宁愿避免使用重量级的 servlet 容器和所有这些基础设施,API 只是一个小作为我项目的一部分,我不想为了支持 API 而把整个事情都塞进战争中:-/
          • 在 Jetty 上运行它...它将是轻量级的!
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-03-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多