# Validare un body JSON con un'azione

> Definisci uno schema di input su un'azione e lascia che Total.js respinga le richieste non valide prima che il tuo codice venga eseguito.

Framework: total5
Product: Total.js 5 (total5@0.0.19)
Language: it
Content-SHA256: 18cdca8ba721a2c70c01183fdfa2d464a139fb12e0ed31a188468adc8061f1c2
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: total5-installed@total5@0.0.19
Review: not-recorded

In Total.js 5 dichiari l'input di un'azione con `input`. Un asterisco davanti al nome di un campo (`*email`) lo rende obbligatorio e il tipo dopo i due punti (`Email`) è validato dal framework. La tua funzione `action` viene eseguita solo quando i dati sono validi.

Le route puntano a un'azione con l'operatore `-->`. Il prefisso `*` significa "azione" (in opposizione a una funzione di controller).

```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');
};
```

Invia un body valido e l'azione viene eseguita. Invia un indirizzo e-mail non valido e il framework risponde con un errore di validazione senza chiamare la tua funzione.
