# Valider un body JSON avec une action

> Définissez un schéma d'entrée sur une action et laissez Total.js rejeter les requêtes invalides avant l'exécution de votre code.

Framework: total5
Product: Total.js 5 (total5@0.0.19)
Language: fr
Content-SHA256: 269b9b90ecd246100288a95099f6c2b2e4b19814aedf3e75c09a088f164b4ca1
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: total5-installed@total5@0.0.19
Review: not-recorded

Dans Total.js 5, vous déclarez l'entrée d'une action avec `input`. Une étoile devant le nom d'un champ (`*email`) le marque comme obligatoire, et le type après les deux-points (`Email`) est validé par le framework. Votre fonction `action` ne s'exécute que lorsque les données sont valides.

Les routes pointent vers une action avec l'opérateur `-->`. Le préfixe `*` signifie « action » (par opposition à une fonction de contrôleur).

```js definitions/subscribe.js
NEWACTION('Subscribe/exec', {
	name: 'Subscribe to the newsletter',
	input: '*email:Email, name:String',
	action: function($, model) {
		$.success(model.email);
	}
});
```

```js controllers/subscribe.js
exports.install = function() {
	ROUTE('POST /subscribe/ --> *Subscribe/exec');
};
```

Envoyez un body valide et l'action s'exécute. Envoyez une adresse e-mail invalide et le framework répond par une erreur de validation sans appeler votre fonction.
