【发布时间】:2011-10-26 11:59:43
【问题描述】:
抱歉,这个问题听起来很傻,但是在使用 Jersey 开发了一些 RESTful 服务之后,我问自己一个问题——如果 REST 只是一种架构,而不是像 SOAP 这样的协议,为什么我们需要像 JAX 这样的规范-RS?
我实际上搜索了诸如“servlet 和 RESTful 服务通过 HTTP 有什么区别”之类的问题,并总结了社区的答案,我得到了:
- RESTful 服务开发(在 Jersey 上)是一种架构,它本质上使用 servlet。
- Jersey 等符合 JAX-RS 的工具可轻松编组和解组 XML/JSON 数据,从而帮助开发人员。
- REST 帮助我们以一种比普通 servlet 高效得多的方式使用 GET/POST/PUT/DELETE。
根据这些答案,我想如果我编写一个使用 JAXB(用于处理自动序列化)的 servlet,并且我在我的 servlet 代码中有效地使用 GET/POST/PUT/DELETE,我不会使用像泽西岛,因此是 JAX-RS。
我知道我通过这个声明是非常错误的,请纠正我。
PS:当我不得不用 PHP 开发一些 RESTful 服务时,这个疑问实际上就出现了。在浏览了一些 RESTful PHP 代码之后,我意识到它们只是相同的旧 PHP 脚本,带有一些用于处理 XML/JSON 的辅助方法。
【问题讨论】:
-
感谢您的所有回复。但是有人可以回答我的第一点吗?为什么我们需要一个“架构”规范......也许有人可以指出我提供正式规范的任何其他架构?
-
您是否在寻找比简单性(几行代码)和可移植性(部署到 GlassFish、WebLogic、WebSphere、JBoss 等)更多的原因?您可以使用 Servlets/JAXP/JDBC 等较低级别的规范开发 RESTful 服务,但这通常比 JAX-RS/JAXB/JPA 等较高级别的规范涉及更多代码。