RESTful API PUT/PATCH 翻转布尔值

RESTful API PUT/PATCH to flip boolean

在 RESTful API 上翻转布尔值的正确方法是什么?

例如,考虑一个 users/toggle_middle_name 端点。默认情况下,每个用户不会显示他或她的中间名,除非他们通过点击端点选择加入。

显然,这不是 GET 端点,因为您要将信息写入数据库。但是,在 PATCH/PUT 请求中,我的一般理解是应该发送参数,表示要设置的数据。因此,例如,可以发送 {show_middle_name: true}。但由于这只是一个在服务器端翻转的布尔值,理想情况下,您不需要知道在调用之前是发送 true 还是 false。只需点击端点,它就会从一个翻转到另一个,但不会发送任何值。

然后问题就变成了,只点击 PUT/PATCH 端点 没有 参数是否可以,并且简单地 return结果有回应?还是不鼓励无参数 PUT/PATCH API 调用?为什么或为什么不?

简单地说:不要

在我看来,不应该有专门的资源来翻转布尔值,因为布尔值本身并没有定义一个独立的实体。

相反,我会将其设为 User 的属性,并在 /users/john_doe 上使用

执行 PATCH
{
  "show_middle_name": true/false
}

作为 适用。