如何编辑资源?

时间:2010-08-08 00:50:50

标签: rest

请原谅这个简单的问题,但似乎大多数搜索试图告诉我哪些方法是针对哪些行为而设计的。例如,创建&编辑是PUT,从复数创建(文章)是POST,依此类推。 (如果您不同意这一点,我只是以它为例。)

话虽如此,您如何启动资源编辑?要使用已知URL创建资源,您需要在不存在的URL上执行GET。例如,GET:mysite/resource_one。然后返回一个表单,表单将PUT提交到同一地址和bam,创建资源。

现在如何编辑相同的资源?有4个方法,专为CRUD设计,我遇到了问题,因为我似乎只能想到一种方法。要转到 资源。例如,GET:mysite/resource_one/edit。然后,它会显示包含现有数据的表单,您可以对其进行编辑,然后将数据提交给GET:mysite/resource_one。在一个似乎被设计为允许在资源上执行完整CRUD而不留下所述资源的系统中,这似乎很奇怪。

那么..什么是正确的方法?我的意思是,如果GET:mysite/resource_one/edit是正确的,那么为什么不GET:mysite/resource_one/deleteGET:mysite/resource_two/create等等。

非常感谢!

1 个答案:

答案 0 :(得分:4)

URL始终代表资源,而不是动作。因此,虽然mysite/resource_one/edit可能是启动编辑资源的页面的正确URL,但它不是REST API本身的一部分,它是使用该REST API来操作该资源的Web应用程序的一部分。此外,在该示例中,mysite/resource_one将是资源的混淆表示。

要创建新资源,请在父资源上使用POST,请求正文包含新资源的数据。响应包含新创建的资源的URL。

要更新现有资源,请在资源URL上使用PUT,请求正文包含资源数据的完整或部分更新。