# Einen JSON-Body mit einer Action validieren

> Definiere ein Eingabeschema für eine Action und lass Total.js ungültige Anfragen abweisen, bevor dein Code läuft.

Framework: total5
Product: Total.js 5 (total5@0.0.19)
Language: de
Content-SHA256: 53bc638697b4b8c2c302505e0d13b27aba5304edc3c69a9bd20d56b95131e610
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: total5-installed@total5@0.0.19
Review: not-recorded

In Total.js 5 deklarierst du die Eingabe einer Action mit `input`. Ein Stern vor einem Feldnamen (`*email`) markiert es als Pflichtfeld, und der Typ nach dem Doppelpunkt (`Email`) wird vom Framework validiert. Deine `action`-Funktion läuft nur, wenn die Daten gültig sind.

Routen verweisen mit dem Operator `-->` auf eine Action. Das Präfix `*` bedeutet "Action" (im Gegensatz zu einer Controller-Funktion).

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

Sende einen gültigen Body, und die Action wird ausgeführt. Sende eine ungültige E-Mail-Adresse, und das Framework antwortet mit einem Validierungsfehler, ohne deine Funktion aufzurufen.
