2012-10-17 21 views
7

简单的问题:如果我不是我的资源通过HTTP POST/PUT方法发送什么样的数据(内容) - 它仍然是RESTful的?PUT没有数据,它是RESTful吗?

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

你觉得它怎么样?使用POST/PUT方法发送内容可以吗?我个人没有问题,但我只是好奇别人会说什么。

回答

5

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

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

3

你并不需要在POST数据或PUT它是宁静的。如果你正在做的事情是非幂等的(意味着请求会修改或创建一个资源),你不想使用GET(无论有没有数据可以传递)。例如,您可能有考虑请求和资源URL打所有需要创建或修改某些资源的时间RESTful Web服务 - 没有请求数据的需要!

相关问题