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

SB2*_*055 1 asp.net-mvc web-applications asp.net-mvc-3 asp.net-web-api

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

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

1. PUT /api/objects/setasviewed/1
2. PUT /api/object/setasviewed
3. POST /api/objects/setasviewed/1
4. POST /api/object/setasviewed
Run Code Online (Sandbox Code Playgroud)

Chr*_*att 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
Run Code Online (Sandbox Code Playgroud)

也许:

PATCH /api/objects/1
Run Code Online (Sandbox Code Playgroud)

随着发布的数据:

{ "viewed" : true }
Run Code Online (Sandbox Code Playgroud)