【发布时间】:2012-01-29 10:35:51
【问题描述】:
我是 RESTful Web 服务的新手。我有以下 2 个问题:
GET、POST、DELETE、PUT、TRACE、HEAD、OPTIONS 是 Http 中唯一可以用于 RESTful Web 服务的动词吗?
如何创建和使用自定义动词?
我正在使用 Java 和 Jersey 来创建我的 RESTful Web 服务。
【问题讨论】:
-
除了 GET、POST、PUT 和 DELETE 之外,您还需要什么动词?请解释一下。
-
通过创建自定义动词超出 HTTP 规范将使您的服务不符合 HTTP 标准,这可能会导致未来出现不可预见的问题(例如互操作性)。此外,大多数开发人员永远不会超越 GET 和 POST,因此了解您为什么认为需要新东西会很有趣
-
老实说,我是 Web 服务的新手。所以,我可能对它有很多误解。但是假设我想提供 10 种不同的操作。那么我如何提供只有 7 个动词的 10 个动作呢?不是每个动作都在一个单独的动词下吗?或者我错了,可以使用条件在单个动词下提供多个动作?一般来说,其他人如何设计他们的应用程序,即使他们需要提供 100 种不同的动作,他们也不需要额外的动词?
-
查看我的回答,您不想使用 HTTP 请求方法(GET、POST、ETC)来定义应用程序中的“动词”。将这些视为较低级别的内容,例如发送和接收。
-
§5.1.1:您可以在不超出 HTTP 规范的情况下定义自己的 HTTP 方法,因此它在技术上仍然符合 HTTP 标准。尽管您的互操作性 cmets 仍然适用。