REST – Representational State Transfer

REST-Prinzip Client-Server

REST-Prinzip Zustandslosigkeit

REST-Prinzip Caching

REST-Prinzip Einheitliche Schnittstelle

1. Adressierbare Ressourcen

2. Repräsentationen zur Veränderung von Ressourcen

3. Selbstbeschreibende Nachrichten

4. Hypermedia As The Engine Of Application State (HATEOAS)

Beispiel REST-Anfrage

REST-Request
GET /accounts/123abc HTTP/1.1
Host: bank.example.com
Accept: application/json
…

Beispiel REST-Antwort I

REST-Response
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:

Beispiel REST-Antwort II

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.

REST-Response
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"
       }
   }
}

REST Conclutio

Es geht bei REST darum, dass es ein

  1. loses
  2. gekapseltes

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!

andere Interfaces