泽西/杰克逊构建JSON REST API的更好替代方案?[已关闭]

2022-09-01 23:37:19

我需要构建JSON-REST API的服务器端,我一直在玩泽西岛来做到这一点(使用它的JSON-POJO映射功能)。

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

例如,您可以在POJO对象需要用@XmlRootElement进行注释的要求中看到这一点,即使我所做的任何事情都不涉及XML。

我想知道是否还有其他库,也许是最近的,我应该考虑这样做,可能比泽西岛更容易使用?


答案 1

泽西岛可以使用Jackson将POJO序列化为JSON,而无需任何注释。可通过将该属性设置为 来配置此属性。JSONConfiguration.FEATURE_POJO_MAPPINGtrue

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

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

查看泽西岛文档


答案 2

我强烈推荐 JBoss RESTEasy 作为 REST API。我已经在几个项目中使用它,发现它的设置微不足道。如果您需要,它还与Spring很好地集成在一起。

我使用Jackson和Gson作为RESTEasy的JSON支持,这很简单。您所要做的就是使用 JAXB 注释来注释 POJO,并包含正确的库。

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

我建议不要使用Spring MVC for REST,因为它不符合JAX-RS标准。如果您决定将来切换到其他实现,那么使用 JAX-RS 兼容接口可以为您提供更好的可移植性。