带有MVC的Web API - 我应该使用PUT来更新对象的布尔值吗?

时间:2013-03-07 16:54:56

标签: asp.net-mvc asp.net-mvc-3 web-applications asp.net-web-api

我有一个方法,如" setAsViewed"这需要一个Id并且只是翻转一个布尔值,但我不确定这里的四个选项中哪一个最好。我的想法是我想尽可能少地发送数据,因此{id}选项之一是最好的。由于PUT通常对应于更新,我倾向于第一个。这里的约定是什么?

翻转给定对象布尔字段的选项(我能想到):

1. PUT /api/objects/setasviewed/1
2. PUT /api/object/setasviewed
3. POST /api/objects/setasviewed/1
4. POST /api/object/setasviewed

1 个答案:

答案 0 :(得分:10)

REST快速指南:

  

GET / api / objects :列出对象

     

GET / api / objects / 1 :获取id为== 1的对象

     

POST / api / objects :创建一个包含已发布数据的新对象(完整模型)

     

PUT / api / objects / 1 :使用已发布数据(完整模型)更新ID == 1的对象

     

PATCH / api / objects / 1 :使用部分数据(部分模型)更新id == 1的对象

     

POST / api / objects / 1 / someprocedure :对id == 1的对象运行一些过程

所以在你的场景中,它应该是:

POST /api/objects/1/setasviewed

或者也许:

PATCH /api/objects/1

发布数据:

{ "viewed" : true }