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

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

这真的很重要吗,我可以幸福地生活在GETPOST之后吗?


更新:感谢答案的人, Roger的回答可能是最好的,因为与Bill Venners和Elliotte Rusty Harold的访谈有关。 我现在明白了。


===============>>#1 票数:22 已采纳

是的,你可以在没有PUT和DELETE的情况下生活。

本文将告诉您原因: http//www.artima.com/lejava/articles/why_put_and_delete.html

对于真正的RESTafrians而言,这可能是异端邪说,在现实世界中,你可以用你拥有的东西尽你所能。 尽你所能并尽可能符合你自己的惯例,但你绝对可以建立一个没有P和D的良好的RESTful系统。

RP

===============>>#2 票数:3

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

===============>>#3 票数:2

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

编辑:这是Fielding的一句话,他是创建和定义REST的人:

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

===============>>#4 票数:2

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

===============>>#5 票数:1

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

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

  ask by Kev translate from so

未解决问题?本站智能推荐:

2回复

RESTful Web服务获取随机数动词

如果您创建一个可以返回随机数的RESTful Web服务,则应使用哪个动词? 我个人的感觉是使用POST,因为您每次都创建一个新的随机数,但是我听到了一些使用GET的令人信服的论据,因为您实际上是在获取随机数。 GET也有被缓存的危险
1回复

RESTful Web服务上的Apache HTTP请求异常结束

我需要使用JUnit测试RESTful Web服务*(带有spring)。 我使用测试工具中内置的IntelliJs测试了Web服务,并且运行良好。 所以现在我正在使用ApacheHttpClient在该Web服务上执行POST请求。 我启动RESTful Web服务,然后执行此代码
4回复

RESTful Web服务中GET,PUT和DELETE HTTP方法的使用

我正在开发票务预订应用程序。 我需要构建一个Web服务,该服务接受取消请求,检查下游系统(通过SOAP),是否可以取消它,并在更新我的表后将适当的响应返回给调用系统。 我必须构建一堆类似的Web服务以进行取消,重新计划等,而我计划使用RESTful Web服务 我打算使用JAX-R
1回复

具有自定义动词/动作的Web API是否为RESTful?

我正在设计一个游戏服务器API,允许玩家花费一些游戏货币来“探索”一个区域(从该区域中随机获取一些资源)。 由于此API调用会扣除玩家的游戏币种,因此不是幂等且不安全的,因此我不能使用GET,PUT,DELETE,而只能使用POST。 所以我的设计是 请注意,动词/动作是URI的一部
1回复

REST(RESTful)Web服务是否与HTTP绑定(耦合或需要)?

标题基本上都说明了,REST真的与HTTP绑定还是协议无关? 因为我刚读了几篇关于REST的文章,所以我遇到了两个意见,所以我不知道哪一个是正确的。
2回复

关于RESTful Web服务

我曾经专心编写RESTful Web服务,但是当我完成它时,我发现我无法使用RESTClient对其进行测试。 我的代码是这样的: s more, I sent a POST HTTP who主体是 但是我得到了“ HTTP状态415-不支持的媒体类型”。 那么,我该
1回复

对于不是RESTful的HTTP Web服务或对此类Web服务的调用,是否有标准术语?

关于REST一词,显然存在很多误解。 许多人似乎仍然将它直接与HTTP绑定在一起,甚至将两者等同起来,这很简单,因为它们经常在一起。 我承认,我仍然在加深对“ REST”一词何时适用的理解。 但是,在我看来,显然有Web服务支持格式化数据(例如JSON,XML等)的传输/检索,这些数据
1回复

调用服务/方法的http动词

定义表示非REST命令调用的Web服务的最佳实践是什么? 对于REST,基本上,我们使用POST来创建新记录,使用GET来检索记录,使用PUT来更新记录,并使用DELETE来删除记录。 如果我仅想调用其他非资源函数,例如刷新系统缓存,应该使用哪个http动词?
3回复

来自RESTful Web服务的500错误,该服务甚至不响应http请求

我在IIS7上运行了一组ASP.Net页面。 由于是RESTful,我们希望收到一些XML。 这将不再是一项公共服务,因此XML格式已达成共识。 我们需要此服务,因为它是两个站点之间的集成,并且该服务将数据推向一个方向。 我使用Firefox的Poster插件测试了它的工作原理,一切
1回复

Netbeans Restful Web服务

我正在尝试使用Netbeans从数据库制作一个简单的Restful WebService。 一切顺利。 我遵循了Netbeans教程,可以在这里找到。 但是当我尝试获取json结果时,我发现int值(例如id)被认为是String: 我在这里做错了什么?