Aktionen
Aktionen können verwendet werden, um das Formular interaktiver für den Benutzer zu gestalten. Sie können durch Interaktion mit einer Komponente ausgelöst werden (siehe Button onClick, onChange und onPainted), durch eine Antwort vom Server (beispielsweise bei einem Submit oder einer Validierung) oder durch eine Nachricht an ein iFrame.
ActionDefinition
Die grundlegende Struktur ist hierbei stets dieselbe:
action(enum)-
Name der aufzurufenden Aktion. Die nachfolgenden gelisteten Aktionen sind alle möglichen Aktionen. Andere Aktionen anzugeben, ist nicht möglich.
payload(ActionPayload)-
Der Payload ist ein Objekt, dessen Struktur von der jeweiligen Aktion abhängt. Jede Aktion definiert ihre eigene Payload-Struktur.
{
"action" : "downloadFile",
"payload": { "fileName": "testfile.txt", "data": "Hello World"}
}
Serverinteraktion
Der Nachrichtenaustausch mit einem Server wird vom Formular aus gestartet.
Dafür werden die HTTP-Methoden GET und POST genutzt.
Wird POST verwendet, kann der Server als Antwort beliebige Aktionen auslösen.
Bei Aktionen, die GET verwenden, können ausschließlich die von der Aktion abhängigen Daten geladen werden.
Dabei funktioniert eine Serverinteraktion grundsätzlich ähnlich zum Nachrichtenaustausch beim iFrame.
Die Struktur des Aufrufs und der Antwort weicht aber etwas ab.
Struktur – POST
Ein Request kann beispielsweise durch einen Submit ausgelöst werden.
Dadurch wird dann eine POST Nachricht an den Server mit der aktuellen Url gesendet mit folgendem Format:
{
"action" : "METHOD_NAME_THAT_TRIGGERED_REQUEST",
"form" : "COMPLETE_FORM_OBJECT", (1)
"originator" : "ORIGINATOR_OBJECT" (2)
}
| 1 | Enthält die aktuelle Formularkonfiguration inklusive des aktuellen Zustands der Daten |
| 2 | Enthält Informationen von wem oder was die Nachricht ausgelöst wurde. Z. B. ein Button oder ein Event |
Erwartet wird eine Response als JSON-Objekt im obigen Format.
{
"action" : "METHOD_NAME_WHICH_SHOULD_BE_EXECUTED",
"payload" : {
"_comment": "optional object depending on method"
}
}
Struktur – GET
Bei get-Aktionen ist die Struktur anders, da GET Nachrichten genutzt werden und dort keine Request-Objekte mitgesendet werden.
Dementsprechend erwarten get-Aktionen, dass die Nachricht direkt zur Anfrage passt und verwendet werden kann.
Siehe auch getFormConfig.
{
"_comment": "object depending on method"
}