Warum darunter eine Aktion verb in der URI in eine REST Implementierung gegen das Protokoll?
Ich finde es notwendig, zu verstehen, warum auch Verben in die URI, die gegen die REST-Protokoll für die URI-syntax? Wenn ich Lesen Sie die folgenden Artikel, ich Gefühl, das zu viele Leute machen zu viel Lärm über Verben, und, dass Sie sollte machen mehr Lärm über content-Typen:
In einer perfekten Welt ist der client-Browser alle unterstützt GET, POST, PUT und DELETE für die Anfrage-Operationen. Allerdings nur GET und POST unterstützt werden, was bedeutet, wir stecken versucht, zu identifizieren Operationen, die GESTELLT werden sollten, und LÖSCHEN, indem Sie Sie mit gängigen Verben in der URL wie anzeigen, erstellen, Bearbeiten und löschen.
Wie funktioniert dies gegen den Geist der REST architektonischen Prinzipien, und was ist mit der Straßensperre die Sie erleben, indem Sie etwas wie "löschen" in der URL anstelle von "löschen"?
- REST ist kein Protokoll, es ist ein architektonischer Stil.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der einzig gültige Grund für die Führung um URIs zu fördern, ist der richtige Gebrauch der ÜBRIGEN Verben. Wenn eine Anfrage eine Aktion ausführt, die im Einklang mit den Erwartungen des Kunden gemäß des HTTP-standards, dann ist es ziemlich egal, wie die url enthält.
Benennung von urls auf der Grundlage von Substantiven macht es natürlich zu schaffen, das Verhalten ist konsistent mit der Absicht, GET, PUT, POST und DELETE.
Wenn Sie Verben in der URL kann es sehr verwirrend, weil oft das http-verb haben widersprüchliche Verhalten zu der in der URL. REST Regeln sagen, Sie müssen das HTTP-verb, aber in der Regel die url ist mehr beschreibend, so dass es irreführend sein kann.
Die Tatsache, dass die Browser unterstützen nur eine Untermenge von HTTP-Verben ist nicht wirklich relevant, denn selbst wenn Sie haben vollen Zugriff auf alle HTTP-Verben, die Sie noch brauchen, um in der Lage sein, zu modellieren, zu anderen Verben, wie drucken, schließen, bestätigen, Abbrechen.
Du vollkommen Recht, die Menschen brauchen, um den Fokus Weg mehr am content-Typen als URL-Struktur wenn man über REST-Implementierungen.
Machen Ihre URLs beziehen sich auf Substantive ist nicht ein REST Einschränkung, es ist über die Menschen ermutigen, zu fallen in die Grube der Erfolg.
REST ist nicht wirklich ein Protokoll, sondern ein Stil. Als solche sind Sie frei zu tun, etwas, das Ihren Anforderungen entspricht.
HTTP-Verben bevorzugt werden, wenn möglich, Sie sind Teil des HTTP-Protokolls und als solche ein standard. Es erlaubt Ihnen auch, um vorhandene Sicherheits-und caching-Schichten, die auf einem standard-web-server, ohne zu schreiben, jede maßgeschneiderte middleware.
REST schlägt vor, dass wir annehmen sollten, HTTP, und nicht hinzufügen, Ebenen der Abstraktion wie SOAP, RPC oder CORBA tun. Zusätzliche Verben, oder indem Sie auf die URL, könnte gesehen werden als eine, wenn auch leichte, Abstraktion.
Jedoch als Sie righly erwähnen diese nicht konsequent unterstützt über Browser, oder einige Versionen von Flash. Daher kann es notwendig sein, setzen Sie Sie in der URL in der realen Welt, wenn Sie accesssing von der client-Seite.
Sollten Sie sich dies aber sehr vorsichtig, da kann es zu gravierenden Sicherheitsproblemen bei der Durchführung LÖSCHEN/SETZEN über eine URL.
Ich würde vorschlagen, dass die Verben POST, PUT und DELETE sind geeignet für nahezu jeden Bedarf. Sie sollten keine neuen Verben-oder response-codes, wie Sie sollen generisch sein. Fügen Sie weitere Informationen in der request-und response-Daten.
Check out this ALSO Artikel für mehr info:
Grundlegendes zu REST: Verben, die Fehlercodes und-Authentifizierung