rest

REST


REST - REpresentational State Transfer

Client-Server Trennung
Stateless
Kurze Request-Response Kommunikation
Einheitliches Interface
URI - Uniform Resource Identifier
Resourcen getrennt von ihrer Repräsentation
Cachebar
Zugriff üblicherweise über HTTP

HTTP

http

URL - Uniform Resource Locator

protocol://hostname:port/path?field=value

Request

GET http://www.htlstp.ac.at/logo
Accept: image/webp, image/apng, image/*, */*;q=0.8
POST http://www.htlstp.ac.at/api/teachers/
Content-Type: application/json

{
  "name": "SCRE",
  "dept": "IF"
}

Response

HTTP/1.1 200 OK
Server: nginx
Date: Mon, 18 May 2020 18:08:47 GMT
Content-Type: image/png
Content-Length: 4663
Connection: keep-alive
Expires: Mon, 25 May 2020 04:35:30 +0200

‰PNG

IHDR  
N‘•£%Ɏ;%”ÚCl‡³Úí:º0ºRî`Ýze++¡·1Úqƒõ.¥ôB›ëm7¹·îd%á
...

Request Methoden

GET

        GET http://www.appdomain.com/users
        GET http://www.appdomain.com/users/123
        GET http://www.appdomain.com/users?size=20&page=5
    
lädt die angegebene Resource
sollte bei jedem Aufruf dasselbe Resultat liefern
DELETE

        DELETE http://www.appdomain.com/users/123
    
löscht die angegebene Resource

POST

        POST http://www.appdomain.com/users
        Content-Type: application/json
{resource}
Resource im RequestBody speichern
Response sollte URI der angelegten Resource sein
PUT/PATCH

        PUT http://www.appdomain.com/users/123
        Content-Type: application/json
{resource}
Resource im RequestBody unter Request-URI ersetzen/updaten

Status Codes

200 - OK
400 - Bad Request
Request fehlerhaft, später sicher Fehler
Bestellt Kebab bei McDonalds
500 - Internal Server Error
Request ok, Serverfehler, später vielleicht Erfolg
Bestellt Pommes, die sind noch nicht fertig
201 - Created
204 - No Content
nach DELETE
404 - Not Found