我应该在/ resources / id /上的/ resources /或PUT请求上使用POST请求来创建新对象吗?

时间:2012-01-01 08:59:06

标签: rest

创建对象的RESTful方法是什么? 我应该在/ resources / URI上使用POST并将URI返回到响应中新创建的资源,还是应该在/ resources / id / URI上使用PUT? 对/ resources / id /的GET请求肯定会返回404,但是PUT也应该返回404吗? 两种方法都应该用于创建新对象吗?

1 个答案:

答案 0 :(得分:9)

通常,您将使用其中之一或两者,具体取决于您是否希望客户端(以及用户)定义URI。如果客户端POST到resources/,则服务器将确定资源的URI。如果客户端PUT为resources/{id}/,则客户端正在确定资源的URI。

一个例外是,如果创建涉及链接,状态和其他未被正确认为是资源的一部分的项目 - 如果愿意,通常不能将这些额外的“构造函数args”用于它们,因为它们不属于资源的一部分州。相反,你必须在那种情况下发布POST。

即使您使用POST进行创建,您仍然可能希望公开PUT以获取更新。这取决于资源。

如果你不允许PUT创建然后是,那么你应该在那种情况下返回404。