在RESTful API上翻转布尔值的正确方法是什么?
例如,考虑一个users/toggle_middle_name端点。默认情况下,每个用户都不会显示他或她的中间名,除非他们通过命中端点来选择加入。
显然,这不是一个GET端点,因为您将向数据库写入信息。但是,在PATCH/PUT请求中,我的一般理解是,应该发送参数,指示要将数据设置为什么。因此,例如,一个人会发送{show_middle_name: true}。但是,由于这只是一个正在翻转的服务器端的布尔值,理想情况下,您不需要知道是在调用之前发送true还是false。只要命中端点,它就会从一个翻转到另一个,而不发送一个值。
接下来的问题是,只在没有参数的情况下命中PUT/PATCH端点,并在响应中返回结果,这样行吗?还是不鼓励无参数的PUT/PATCH API调用?为什么或者为什么不?
发布于 2016-06-06 21:45:31
简单地说:不要
在我看来,不应该有专门的资源来翻转布尔值,因为布尔值本身并不定义一个自包含的实体。
相反,我将使它成为User的属性,并在/users/john_doe上使用
{
"show_middle_name": true/false
}正如comment from jonrsharpe应用的那样。
https://stackoverflow.com/questions/37666198
复制相似问题