RESTful API PUT / PATCH翻转布尔值

Der*_*Dev 3 api rest boolean endpoint

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

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

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

问题就变成了,可以直接击一个不带参数的PUT/ PATCH端点,然后在响应中简单地返回结果吗?还是不鼓励无参数/ API调用?为什么或者为什么不?PUTPATCH

Joh*_*orn 5

简单地说:不要

我认为应该没有专门的资源来翻转布尔值,因为布尔值本身并不定义一个自包含的实体。

相反,我将其设为的一个属性UserPATCH对其/users/john_doe进行处理

{
  "show_middle_name": true/false
}
Run Code Online (Sandbox Code Playgroud)

正如jonrsharpe评论一样