PUT没有数据,是RESTful吗?

时间:2012-10-17 21:16:57

标签: http rest

简单的问题:如果我不通过HTTP POST / PUT方法在我的资源上发送数据(内容)怎么办?它仍然是RESTful吗?

显然,问题是我想在没有数据的情况下使用PUT。想象一下想要重置密码的用户(比如在this older topic中)。

你怎么看?可以不用POST / PUT方法发送内容吗?就个人而言,我没有任何问题,但我只是好奇其他人会说什么。

2 个答案:

答案 0 :(得分:5)

是的,这是完全可以接受的。在没有数据的情况下执行的每个操作(POST到集合,PUT到资源)都应该创建一个新的“空”资源。这里“空”的定义取决于所代表的内容。

但是,在重置用户密码的特定情况下,我不会说上述模型适用。如果确实存在密码资源,则没有数据的PUT似乎建议将密码设置为空,而不是重置密码。对于这种情况,我会接受该问题的接受答案。

答案 1 :(得分:3)

您不需要POST或PUT中的数据,因为它是Restful。如果您正在做某事是非幂等的(意味着请求将修改或创建资源),您不想使用GET(是否有任何数据要传递)。例如,您可能有一个RESTful Web服务,它将请求的时间和资源URL命中为创建或修改某些资源所需的全部内容 - 无需请求数据!