在URI的查询部分中指定布尔值的首选方法是什么?普通的查询字符串看起来像
a=foo&b=bar
Run Code Online (Sandbox Code Playgroud)
假设我有一个带有布尔值的参数"c",我应该说明
a=foo&b=bar&c=1
Run Code Online (Sandbox Code Playgroud)
要么
a=foo&b=bar&c=True
Run Code Online (Sandbox Code Playgroud)
要么
a=foo&b=bar&c=true
Run Code Online (Sandbox Code Playgroud)
我检查了RFC 2396的查询组件部分,但没有指定如何表示布尔参数.所以我想知道的是通常(或合理)的方式是什么?
Jia*_*ang 26
?foo例如,使用?foo代替?foo=true.
我更喜欢这种方式,因为我不需要浪费时间去思考或追踪源代码是否应该是true或1或enable或yes或任何超出我想象的东西。
在区分大小写的情况下,应该是trueorTrue或 吗TRUE?
在词干提取的情况下,应该是enable还是enabled?
恕我直言, 的形式?foo是将布尔变量传递给服务器的最优雅的方式,因为它只有 2 种状态(存在或不存在),这对于表示布尔变量很有好处。
这也是 Elasticsearch 对布尔查询参数的实现方式,例如:
GET _cat/master?v
Run Code Online (Sandbox Code Playgroud)
在带有快速服务器的节点中,您可以添加一个布尔解析器中间件,如express-query-boolean。
var boolParser = require('express-query-boolean');
// [...]
app.use(bodyParser.json());
app.use(boolParser());
Run Code Online (Sandbox Code Playgroud)
没有
// ?a=true&b[c]=false
console.log(req.query);
// => { a: 'true', b: { c: 'false' } }
Run Code Online (Sandbox Code Playgroud)
和
// ?a=true&b[c]=false
console.log(req.query);
// => { a: true, b: { c: false } }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24515 次 |
| 最近记录: |