在RESTful API上翻转布尔值的正确方法是什么?
例如,考虑一个users/toggle_middle_name
端点。默认情况下,每个用户都不会显示他或她的中间名,除非他们通过点击端点选择加入。
显然,这不是GET
端点,因为您要将信息写入数据库。但是,在PATCH/PUT
请求中,我的一般理解是应该发送参数,表示正在设置的数据。因此,例如,人们会发送{show_middle_name: true}
。但是,由于这只是服务器端的布尔值,理想情况下,您不需要知道在调用之前是发送true
还是false
。只需点击端点,它就会从一个端口翻转到另一个端点,而不会发送任何值。
接下来的问题是,可以在没有参数的情况下点击PUT
/ PATCH
端点,只需在响应中返回结果吗?或者不鼓励参数较少PUT
/ PATCH
API调用?为什么或为什么不呢?
答案 0 :(得分:3)
简单地说:不要
在我看来,应该没有专门的资源来翻转布尔值,因为布尔本身并没有定义一个自包含的实体。
相反,我会将此属性设为User
并在PATCH
上使用
/users/john_doe
{
"show_middle_name": true/false
}