【发布时间】:2012-12-28 04:32:44
【问题描述】:
实现一个 RESTful Web 服务和一个普通的 HTTPServlet 有什么区别。 Servlet 以及任何 REST API 都支持所有 GET/POST/DELETE/PUT。
【问题讨论】:
-
RESTful web service到底是什么意思?
标签: java web-services rest
实现一个 RESTful Web 服务和一个普通的 HTTPServlet 有什么区别。 Servlet 以及任何 REST API 都支持所有 GET/POST/DELETE/PUT。
【问题讨论】:
RESTful web service 到底是什么意思?
标签: java web-services rest
HttpServlet 以程序员认为合适的方式响应 HTTP 方法。一个 RESTful Web 服务应该基于对实体的处理。 CRUD 应该对应于 HTTP 方法 POST、GET、PUT 和 DELETE。 url 也应该根据格式定义,例如{server}/{entities}、{server}/{entities}/{id} 等
【讨论】:
REST 实际上是在服务器上设计 API 时使用的一种架构风格。 HttpServlets 可以是一种实现 RESTful Web 服务的方法。
REST 描述了一种风格,其中 HTTP 动词如 GET/POST/DELETE/等。以可预测的方式用于与服务器上的资源进行交互。
我建议您通读 REST Wikipedia 页面以获得良好的概览。
【讨论】:
REST 是一种架构模式(抽象),而 servlet 是一种实现。
【讨论】:
顾名思义,RESTful Web 服务是一种 Web 服务,用于在 2 个不同的服务器之间建立通信,因此有助于集成基于 Web 的应用程序。Web 服务使用 HTTP 协议。 而 HTTPServlet 是一个支持 HTTP 调用的 Servlet。这里面的不同方法都支持HTTP协议。
【讨论】:
我的 5 美分在这里 :) 至于我 - Servlet 只是 HTTP 协议的抽象。 它支持 GET/PUT 等,因为 Http 协议定义了这些方法。
另一方面,Restful Web 服务是一个抽象概念,它讨论的是操作资源的思想,而不是特定的实现。 确实,在 HTTP 协议的上下文中考虑 rest 功能非常方便,但试着考虑它们,因为它们是完全不同的野兽。 Restful Web 服务不是 Java 特有的。
从技术上讲,如果您谈论的是 Java,则可以使用 vanilla servlet 实现 RESTful Web 服务,或者可以使用 Apache Wink 或 Jersey 等工具来定义一种实现 REST 服务的便捷方式,但这些毕竟只是工具。 顺便说一句,Jersey(据我所知,我不了解其他人)是在 servlet 之上实现的。
希望对你有帮助
【讨论】: