我的delete api接受一个布尔查询参数/users?force=true
。在我的控制器中,我为apipie文档添加了以下内容
param :force, [true, false], required: false, desc: "query parameter."
当我调用api时,我会得到
Apipie::ParamInvalid (Invalid parameter 'force' value "true": Must be one of: <code>true</code>, <code>false</code>.).
我尝试传递/users?force=1,/users?force,但1被视为"1“,没有传递任何内容都被视为空,两次调用都失败。如何使验证通过?
注意:我知道api的定义不是restful的。
发布于 2017-08-15 14:25:26
您正在传递的参数最终是"true“,就像string一样,而不是布尔值,这就是它失败的原因。在没有任何类型转换的情况下,rails不知道您试图传递的是布尔值,而不是字符串。
您应该在有效选项中将"true“、"false”作为字符串列入白名单,例如:
param :force, [true, false, "true", "false"], required: false, desc: "query parameter."
https://stackoverflow.com/questions/45692827
复制