web-dev-qa-db-fra.com

Booléen dans une requête URI?

Quelle est la meilleure façon de spécifier la valeur booléenne dans la partie requête de l'URI? Une chaîne de requête normale ressemble à

a=foo&b=bar

Disons que j'ai un paramètre "c" avec une valeur booléenne, dois-je indiquer

a=foo&b=bar&c=1

Ou

a=foo&b=bar&c=True

Ou

a=foo&b=bar&c=true

J'ai vérifié la section du composant de requête de RFC 2396 et il ne spécifie pas comment exprimer un paramètre booléen. Donc, ce que je veux savoir, c'est quelle est la façon courante (ou raisonnable) de le faire?

32
Clint

Cela dépend complètement de la façon dont vous lisez la chaîne de requête. Tous ceux que vous demandez sont valables.

15
Petar Ivanov

Dans le nœud avec un serveur express, vous pouvez ajouter un middleware d'analyseur booléen comme express-query-boolean .

var boolParser = require('express-query-boolean');

// [...] 

app.use(bodyParser.json());
app.use(boolParser());

Sans pour autant

// ?a=true&b[c]=false 
console.log(req.query);
// => { a: 'true', b: { c: 'false' } } 

Avec

// ?a=true&b[c]=false 
console.log(req.query);
// => { a: true, b: { c: false } } 
4
nicholas

Ou vous pouvez le faire

const queryBool = unwrapTextBoolean({{{A_WAY_TO_GET_THAT_TEXT_BOOLEAN}}})
if(queryBool===null) {return;}
if(queryBool){
   /*true-based code*/
}else{
   /*false-based code*/
}

function unwrapTextBoolean(tB){
  if(tB === 'true') return true;
  if(tb === 'false') return false;
  return null;
}
0
Michael.Medvedskiy