Ter*_*rry 34 api rest spring json jersey
我想构建一个宁静的服务/ API.我使用了一些像play这样的框架来构建它,但我想尝试其他更有效的方法.我听说Jersey是用于构建其余API的通用库,而Spring也是一个很好的框架.但我也看到了像Spring + Jersey这样的解决方案.因此,我对其他API解决方案感到有点困惑.
谁能告诉我这些有什么区别?Jersey REST,Spring Rest和Spring + Jersey Rest?
我的目标是构建一些以json作为输入/输出的rest API.我有jar文件作为后端进程逻辑来处理输入json/object并返回json/object.
非常感谢.
Ros*_*ner 30
Jersey是Sun提供的JAX-RS API示例实现,而Spring REST当然是Spring对相同API/JSR的实现.主要区别在于Spring REST可以轻松集成到其他Spring API(如果您愿意),例如Spring Data Rest.
它们之间存在一些值得注意的差异 - 您可以将Jersey 资源(在Spring中称为控制器)"嵌入" 彼此之间,以启用一个单独的类来负责某个路径的子路径,而这不是现在似乎在Spring中可用(您必须定义完整路径).另外,在我看来,Jersey提供了更好的"开箱即用"错误响应(例如为什么它不能使用Jackson将JSON有效负载映射到Java bean),而Spring可以更加可配置,但没有一些额外的工作.
最后,它们之间的选择差异通常归结为 - 您是否已经或者您是否计划将任何其他Spring库集成到您的应用程序中?如果是这样,Spring REST就是您的选择,因为您可以更轻松地集成它,否则它实际上只是您更喜欢使用的个人偏好.我个人喜欢泽西岛,但其他相关的Spring项目(如我强烈推荐的Spring HATEOAS)的强大功能使得Spring成为更好的选择.我不认为你的案件会有一个真正的决定因素.
由于您的"黄金"目标是带有JSON输入/输出的简单API,我建议您遵循Spring REST指南.
一个主要区别是在单元测试支持方面。
Jersey Test Framework本身不适合模拟服务器端代码-例如,如果您的REST资源依赖于服务,则在测试资源方法时希望模拟服务。但是,Jersey Tests运行一个单独的容器,而单元测试则对正在运行的REST资源实例进行make调用-在这一点上,我还没有找到任何模拟服务器端代码的文档或方法。
相反,Spring MVC测试不需要任何容器-与其控制器集成得更好。依赖注入可以用来注入模拟服务/ DAO,以获得更好的单元测试。
我还发现,与Jersey相比,有关Spring项目的文档更加成熟。
| 归档时间: | 
 | 
| 查看次数: | 31651 次 | 
| 最近记录: |