Diskussion zum REST-Api

  • 3 Antworten
  • Neuester Beitrag
Diskutiere Diskussion zum REST-Api im Android App Entwicklung im Bereich Betriebssysteme & Apps.
Kardroid

Kardroid

Stammgast
Hallo Markus,

zum ersten Mal darf ich dich berichtigen. Wenn du wirklich eine REST-Schnittstelle erstellen möchtest, solltest du auch GET-Methoden benutzen. Stichwort "Idempotent".
 
markus.tullius

markus.tullius

Experte
Ich kann auch REST benutzen, ohne GET zu benutzen. Nirgendwo steht, das GET benutzt werden muss! Und bei Datenbankabfragen bevorzuge ich eben eine etwas kompliziertere Variante. Ist einfacher, als jedes mal über die Verwendung von GET und POST zu streiten. Manchmal ist die URL einfach zu kurz
Außerdem sollte Dir klar sein, dass REST eigentlich nur ein Paradigma ist, wie man sinnvoll mit den verschieden HTTP Anfragemethoden operieren kann. Nirgendwo steht, dass man sich sklavisch daran halten muss. ;) Außerdem muss ich die ganzen Anfragen protokollieren, dafür lege ich gerne eine Datensatz an.

Du solltest vielleicht den Begriff Idempotenz erklären. Und warum es eine Rolle bei der REST - Schnitstelle spielt.

Der Vollständigkeit halber gibt es noch eine zweites Schnittstelle (SOAP).

Representational State Transfer – Wikipedia
SOAP – Wikipedia
 
Kardroid

Kardroid

Stammgast
Hi,

ich finde schon, wenn man auf REST verweist, sollte man auch das Paradigma meinen, deswegen meine Berichtigung.

In deinem Link zu REST steht folgender Satz:
Die Methoden GET, HEAD, PUT und DELETE müssen laut HTTP-Spezifikation idempotent sein, was in diesem Zusammenhang bedeutet, dass das mehrfache Absenden der gleichen Anforderung sich nicht anders auswirkt als ein einzelner Aufruf.
Und wenn der WebService REST-Konform ist, also die Ressourcen klar sind, ist die Schnittstelle meiner Meinung auch besser "lesbar".
Wenn es für dein Projekt eben besser ist, POST zu benutzen, dann ist es halt so. Ich würde es dann aber nicht REST nennen, weil du das Paradigma ja nicht eihälst. (Meine persönliche Meinung)
 
markus.tullius

markus.tullius

Experte
POST gehört auch zu REST. Es ist eigentlich eine Erweiterung von GET. Hier hat man die Möglichkeit neue Ressourcen zu generieren.
Und es ist die einzige Möglichkeit, die andern Methoden zu erweitern, wenn man mit der Definitionen nicht reicht.
In meinen Fall kann die URL länger sein, als die Bei GET - Anfragen mögliche Anzahl an Zeichen (255 Byte).

Man sollte nie den Programmcode ein Paradigma unterordnen. Eher umgekehrt, man hat ein Problem, und sucht dann passende Paradigma. In dem Fall brauche ich eine erweiterte GET-Methode (URL größer 255 Byte). Und so benutze ich für den Laden von Ressourcen eben nur POST. Das schöne daran ist, es konform zum Paradigma.

Abschließend noch eine Bemerkung: GET ist eigentlich nullipodent und nicht idempotent. ;)