REST – Representational State Transfer
- kann Informationen in den URI codieren
- somit sind die meisten Web-Sachen REST-konform
- 2000 von Roy Fielding
- seit 2014 RESTfull Apllication im WWW
- kann als asynchrones Verfahren genutzt werden
GET /accounts/123abc HTTP/1.1
Host: bank.example.com
Accept: application/json
…
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: …
{
"account": {
"account_id": "123abc",
"balance": {
"currency": "EUR",
"value": 100.00
},
"links": {
"deposit": "/accounts/123abc/deposit",
"withdraw": "/accounts/123abc/withdraw",
"transfer": "/accounts/123abc/transfer",
"close": "/accounts/123abc/close"
}
}
}
Diese Antwort beinhaltet vier mögliche Links:
Falls das Konto überzogen ist, kann nur noch Geld eingezahlt werden und keines mehr abgebucht oder überwiesen werden. Auch Konto kündigen entfällt.
Das verändert die Antwort.
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: …
{
"account": {
"account_id": "123abc",
"balance": {
"currency": "EUR",
"value": -100.00
},
"links": {
"deposit": "/accounts/123abc/deposit"
}
}
}
Es geht bei REST darum, dass es ein
Interface beschrieben wird.
Damit läßt sich also problemlos ein einfaches Interface über HTTP-GET zB zum Server-Steuern realisieren.
Damit läßt sich also einigermaßen ;) problemlos ein komplexes Interface über HTTP-POST zB zum Auf-dem-Server-Speichern realisieren.
Loses Interface -> Entwickler wählt flexibel, was er braucht -> weniger Arbeit => schnell und mehr PROFIT!
Wer möchte, kann sogar die ganzen (heute: cloudigen, ansonsten: immer gefährlichen) anderen HTTP-Methoden einsetzen, da kommt Freude auf!
Bei der Verwendung von JSON@REST (Ha!) entfällt auch der ganze SOAPsche Overhead.
Es ist also ein Entwickler-Träumchen!