Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 弹簧&x2B;(哪个库)用于JSON REST API_Java_Json_Rest - Fatal编程技术网

Java 弹簧&x2B;(哪个库)用于JSON REST API

Java 弹簧&x2B;(哪个库)用于JSON REST API,java,json,rest,Java,Json,Rest,我希望在工作中制作一个RESTAPI,我希望它能与Spring很好地集成。我看了好几个,想看看我是否遗漏了什么,并得到更多知情人士的意见 这是我的基本要求 集成(或至少与Spring 3.1+不冲突) 超媒体链接(一种或另一种方式,即使它只是基于模板的字符串字段) JSON(XML也不错)支持 还有一个要求 从JSON映射到JSON。这是迄今为止最大的障碍。我看到很多框架支持marshelling to/formjson,但都是纯POJO-marshelling。例如,我可能希望为不同的请求

我希望在工作中制作一个RESTAPI,我希望它能与Spring很好地集成。我看了好几个,想看看我是否遗漏了什么,并得到更多知情人士的意见

这是我的基本要求

  • 集成(或至少与Spring 3.1+不冲突)
  • 超媒体链接(一种或另一种方式,即使它只是基于模板的字符串字段)
  • JSON(XML也不错)支持
还有一个要求

从JSON映射到JSON。这是迄今为止最大的障碍。我看到很多框架支持marshelling to/formjson,但都是纯POJO-marshelling。例如,我可能希望为不同的请求提供对象的不同表示

假设我想要一份所有宠物主人的名单,我可能只想要一份人和他们的名字的名单,以及他们宠物的链接。但是,如果其他请求是专门针对某个所有者的,我希望将他们的宠物(作为所有者对象的子对象)列为响应的一部分


有没有一种好方法可以做到这一点并定义这种映射,或者您只需要创建具有不同注释的POJO并将数据从实体传输到它们?基本上,创建一组DTO来表示不同请求的数据?

Spring MVC可能满足您的所有要求-这里是一个很好的参考-

  • 创建实体(例如Person.java)
  • 使用SpringDataJPA并创建接口来自动生成这些实体的存储库/DAO(例如.PersonRepository.java)
  • 使用SpringDataREST将Spring数据存储库导出为HATEOAS/RESTfulServlet(浏览
    /persons
    url)
  • 您不必为存储库/DAO编写任何代码。SpringDataJPA将为您编写DAO。您所要做的就是创建一个非常基本的界面

    您不必编写任何控制器。SpringDataREST将使用自己的servlet导出所有存储库


    在进行此操作时,使用Hibernate的hbm2java从数据库模式创建实体,并创建Spring数据JPA存储库

    您可能对EclipseLink MOXy中的JSON绑定感兴趣(请参阅:)。MOXy提供了基于路径的映射和一个外部映射文档,使应用多个表示变得容易(请参见:)。注意:我是MOXy的负责人。这看起来很棒,JSON绑定正是我认为应该已经存在但还没有找到的。你能告诉我你将如何做我想做的事情吗?我之前已经看过了,我知道了如何轻松地做我想做的事情,除了根据请求使用不同的OXM绑定。即使使用spring oxm,您似乎也定义了一个用于所有情况的单一映射。spring MVC与Jackson集成得非常好,可以将POJO转换为json并返回。要自定义输出,Jackson提供的唯一机制是指定自定义序列化程序和反序列化程序-。如果你想获得更多的控制权,那么是的,Blaise建议的东西看起来很好——而且很容易在Spring MVC中使用它。我只是想我应该更新它,这样人们就可以看到我最终使用了什么。我决定只使用MOXy并使用@ResponseBody返回预期的响应,因为我只有几个API调用。在家里,以及将来,我想写我自己的HttpMessageConverter,让我能够使用MOXy作为JSON/XML格式