makemehapi
Version:
Self guided workshops to teach you about hapi.
56 lines (43 loc) • 1.82 kB
Markdown
En utilisant un objet Joi nous pouvons spécifier des règles de validation
hautement personnalisables pour les chemins, le contenu des requêtes, ou même
les réponses.
Créez un serveur exposant un point d’accès d’authentification qui répond par
« authentification réussie » quand une requête HTTP POST est envoyée sur
le chemin `/login`.
Le point d’accès accepte les variables de requête (formulaire) suivantes :
```isGuest``` (booléen)
```username``` (chaîne de caractères)
```accessToken``` (alphanumérique)
```password``` (alphanumérique)
La validation doit exprimer les conditions suivantes :
1) Si `isGuest` est `false`, un `username` est requis.
2) `password` ne peut pas être fourni en même temps que `accessToken`.
3) Si d’autres paramètres que ceux spécifiés ci-dessus sont fournis, ils sont
acceptés d’office.
-----------------------------------------------------------------
## Conseils
Le code suivant illustre une validation complexe :
```js
var routeConfig = {
path: '/a/path/',
method: 'POST',
handler: myHandler,
config: {
validate: {
payload: Joi.object({
username: Joi.string(),
password: Joi.string().alphanum(),
accessToken: Joi.string().alphanum(),
birthyear: Joi.number().integer().min(1900).max(2013),
email: Joi.string().email()
})
.options({ allowUnknown: true })
.with('username', 'birthyear')
.without('password', 'accessToken')
}
}
}
```
Toutes les façons de configurer une route sont consultables [ici](https://hapijs.com/api).
Les informations sur les objets de validation Joi sont consutlables ici :
{rootdir:/node_modules/joi/README.md}