====== Grundsätze ====== * Nach Möglichkeit HTTP-Methoden für Verben/Aktionen benutzen * PUT -> Lege eine Resource mit einem bestimmten Namen an * DELETE -> Lösche eine bestimmte Resource * GET -> Hole die Daten einer bestimmten Resource * POST -> Sende Daten zum Server, die nicht direkt eine bestimmte Resource betreffen * PATCH -> Teilupdate einer Resource (im Gegensatz zu PUT was eine Resource komplett ersetzt) * wenn nicht möglich (zum Beispiel bei Suchen) möglichst Substantiv und dann URL-Parameter benutzen -> GET http:somehost/tickets?month="may" ====== Begriffe ====== ===== Idempotent ===== * Requests die immer zum gleichen Ergebnis führen/die reproduzierbare Ergebnisse generieren * diese Requests können gefahrlos mehrfach hintereinander ausgeführt werden, ohne das sich das Ergebnis ändert * PUT -> da es eine konkrete Resource komplett ersetzt führt das mehrfache ausführen des gleichen PUT-Requests (mit den gleichen Daten) immmer dazu das die gleiche Resource mit den gleichen Daten ersetzt wird * POST -> da es eine Operation gegen ein unbestimmtes Objekt ist und ggf. zum Beispiel zum wiederholten Anlegen des gleichen Objektes führt wenn mehrfach ausgeführt ist nicht idempotent ===== Safe ===== * Requests die nicht zu Veränderungen einer Resource führen (sollten) * GET -> gibt eine Representation einer Resource zurück, verändert sie aber nicht * PUT -> verändert eine Resource, wäre also nicht Safe