服务器应允许将 Web 服务归类为 RESTful 的最小 HTTP 动词集是什么?

如果我的主机不允许怎么办 删除?

这真的很重要吗?我能从此过上幸福的生活吗? 得到邮政 ?


更新: 谢谢各位的解答, 罗杰的回答 可能是最好的,因为链接到比尔·文纳斯和埃利奥特·拉斯蒂·哈罗德的采访。我现在明白了。


有帮助吗?

解决方案

是的,您可以没有 PUT 和 DELETE。

这篇文章告诉你原因:http://www.artima.com/lejava/articles/why_put_and_delete.html

虽然对于真正的 RESTafrian 人来说,这可能是异端邪说,但在现实世界中,你会尽你所能,利用你所拥有的一切。尽可能理性并尽可能符合你自己的约定,但你绝对可以在没有 P 和 D 的情况下构建一个良好的 RESTful 系统。

RP

其他提示

您还可以使用 X-Http-Verb-Override:DELETE inst。HTTP 删除。这对于无法更改 HTTP 动词且仅支持 GET 和 POST 的 Silverlight 客户端也很有用...

如果你只使用 GET 和 POST,它仍然是 RESTful。您的 Web 服务可能只执行只需要 GET 或 POST 的操作,所以没关系。

如果协议的实现被破坏,REST 允许破坏协议约定(因此您所做的唯一非标准的事情就是绕过实现的损坏部分)。因此,在 REST 中允许使用其他方法来表示通常不支持的动词,例如 DELETE 或 PUT。

编辑:以下是 Fielding 的一句话,他是 REST 的创建者和定义者:

除了填写或修复标准协议未指定位的详细信息(例如 HTTP 的 PATCH 方法或 Link 标头字段)之外,REST API 不应包含对通信协议的任何更改。对于损坏的实现(例如那些愚蠢到相信 HTML 定义了 HTTP 方法集的浏览器)的解决方法应该单独定义,或者至少在附录中定义,并期望该解决方法最终会过时。[此处的失败意味着资源接口是特定于对象的,而不是通用的。]

今天的网络浏览器仅处理GETS + POSTS。例如,在 Rails 中,PUTS + DELETES 是通过隐藏表单字段“伪造”的。

除非您的框架有一些解决方法来“支持”PUTS + DELETES,否则现在不要担心它们。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top