避免使用DELETE和PUT是一种好的restful URL设计吗?
我读了一个restful服务的示例,它只使用了两个HTTP方法:get post。 例如,服务器上有一个任务列表。要设计restful URL,我们可以使用:避免使用DELETE和PUT是一种好的restful URL设计吗?,rest,url,http-put,http-delete,Rest,Url,Http Put,Http Delete,我读了一个restful服务的示例,它只使用了两个HTTP方法:get post。 例如,服务器上有一个任务列表。要设计restful URL,我们可以使用: www.example.com/task GET. return all the task list. www.example.com/task/id GET. return the specific task. www.example.com/task/create GET. return a task form. www
www.example.com/task GET. return all the task list.
www.example.com/task/id GET. return the specific task.
www.example.com/task/create GET. return a task form.
www.example.com/task/create POST. post the data from task form page.
www.example.com/task/update/id GET. update a task with id, return a task form page.
www.example.com/task/update/ POST. update the task from the task form page.
www.example.com/task/delete/id GET. delete the task with ID.
这样,URL就非常清晰,用户可以理解URL的含义。
这是restful URL定义的良好实践吗
我们应该使用PUT、DELETE操作吗?如果是这样,如何设计向上的URL?
谢谢
我认为更好的API应该是使用HTTP动词来描述每个动作应该做什么的API
我还认为最好在前面加上实体ID(/task/ID/update
vstask/update/ID
),因为它非常明确地表明我们是在实体上行动的
www.example.com/task GET. return all the task list.
www.example.com/task/id GET. return the specific task.
www.example.com/task/create GET. return a task form.
www.example.com/task/create POST. post the data from task form page.
www.example.com/task/update/id POST. update a task with id, return a task form page.
www.example.com/task/update/ PUT/POST. update the task from the task form page.
www.example.com/task/delete/id POST/DELETE. delete the task with ID.
我认为更好的API应该是使用HTTP动词来描述每个动作应该做什么的API
我还认为最好在前面加上实体ID(/task/ID/update
vstask/update/ID
),因为它非常明确地表明我们是在实体上行动的
www.example.com/task GET. return all the task list.
www.example.com/task/id GET. return the specific task.
www.example.com/task/create GET. return a task form.
www.example.com/task/create POST. post the data from task form page.
www.example.com/task/update/id POST. update a task with id, return a task form page.
www.example.com/task/update/ PUT/POST. update the task from the task form page.
www.example.com/task/delete/id POST/DELETE. delete the task with ID.
这个例子几乎是好的
- GET-获取资源,GET请求不会更改任何内容。因此,使用它来只读数据,并获取静态资源,如html页面
- POST-to提交更改
- 删除-使用它支持REST类型,但也可以使用POST never use GET进行删除操作
- GET-获取资源,GET请求不会更改任何内容。因此,使用它来只读数据,并获取静态资源,如html页面
- POST-to提交更改
- 删除-使用它支持REST类型,但也可以使用POST never use GET进行删除操作
- 使用名词,但不要使用动词
- 使用复数名词
- 使用HTTP动词(GET、POST、PUT、DELETE)执行CRUD
- 使用名词,但不要使用动词
- 使用复数名词
- 使用HTTP动词(GET、POST、PUT、DELETE)执行CRUD
GET
导致删除是一个非常糟糕的主意。如果一个网络爬虫(例如谷歌)曾经意外地被指向你的服务(通过在某处发布的一个错误链接),它可能会通过一切方式删除它(因为它会自动GET
s任何它能得到的链接),使用GET
导致删除是一个非常糟糕的主意。如果一个网络爬虫(例如谷歌)曾经意外地被指向你的服务(通过在某处发布的一个错误链接),它可能会通过一切方式删除它(因为它会自动GET
s任何它可以得到的链接)编辑:我相信你指的是CRUD而不是Edited:我相信你指的是CRUD而不是CRUD
www.example.com/tasks GET return all the task list.
www.example.com/tasks POST Create a new task
www.example.com/tasks/id GET return the specific task.
www.example.com/tasks/id PUT update the task
www.example.com/tasks/id DELETE delete the task with ID.