"vote" 资源在 REST API 中应该是什么方法类型?

What method type should a "vote" resource be in a REST API?

我正在设计 restful API。在此 API 中,可以使用 API POST、DELETE 和 GET 案例。如果您发现某个案例特别重要,可以在其上添加 "vote" 以便该案例具有更高的优先级。

但是我想知道这应该是什么类型的方法?

应该是哪一个:

GET /cases/{case_id}/vote
POST /cases/{case_id}/vote
PUT /cases/{case_id}/vote

调用vote方法只会增加1票。 我目前倾向于把自己看作是如何更新现有数字(尽管 POST 也可以用于此)但我想知道约定是什么。

首先我会给资源命名

/cases/{case_id}/votes

明确这是案例投票的资源。

然后使用

POST /cases/{case_id}/votes

在此资源上。在服务器上,票数将增加一票。

不要使用 PUT,因为这意味着客户控制着不正确的总票数。客户端只触发增加一票,并没有设置总票数。