创建对象的RESTful方法是什么? 我应该在/ resources / URI上使用POST并将URI返回到响应中新创建的资源,还是应该在/ resources / id / URI上使用PUT? 对/ resources / id /的GET请求肯定会返回404,但是PUT也应该返回404吗? 两种方法都应该用于创建新对象吗?
答案 0 :(得分:9)
通常,您将使用其中之一或两者,具体取决于您是否希望客户端(以及用户)定义URI。如果客户端POST到resources/
,则服务器将确定资源的URI。如果客户端PUT为resources/{id}/
,则客户端正在确定资源的URI。
一个例外是,如果创建涉及链接,状态和其他未被正确认为是资源的一部分的项目 - 如果愿意,通常不能将这些额外的“构造函数args”用于它们,因为它们不属于资源的一部分州。相反,你必须在那种情况下发布POST。
即使您使用POST进行创建,您仍然可能希望公开PUT以获取更新。这取决于资源。
如果你不允许PUT创建然后是,那么你应该在那种情况下返回404。