Obwohl ich das Risiko eingehen möchte, nicht beliebt zu sein, sage ich, dass sie heutzutage nicht mehr nützlich sind .
Ich denke, sie waren in der Vergangenheit gut gemeint und nützlich, als beispielsweise DELETE den Server aufforderte, die unter der angegebenen URL gefundene Ressource zu löschen, und PUT (mit seinem Geschwister-PATCH) den Server aufforderte, auf idempotente Weise zu aktualisieren.
Die Dinge entwickelten sich und URLs wurden virtuell (siehe z. B. das Umschreiben von URLs ), wodurch Ressourcen ihre ursprüngliche Bedeutung als realer Ordner / Unterbedarf / Datei verloren. Daher verloren CRUD-Aktionsverben, die von HTTP-Protokollmethoden (GET, POST, PUT / PATCH, DELETE) abgedeckt wurden, den Überblick .
Nehmen wir ein Beispiel:
- / api / entity / list / {id} vs GET / api / entity / {id}
- / api / entity / add / {id} vs POST / api / entity
- / api / entity / edit / {id} gegen PUT / api / entity / {id}
- / api / entity / delete / {id} vs DELETE / api / entity / {id}
Auf der linken Seite ist die HTTP-Methode nicht geschrieben, im Wesentlichen spielt es keine Rolle (POST und GET sind ausreichend) und auf der rechten Seite werden geeignete HTTP-Methoden verwendet.
Die rechte Seite sieht elegant, sauber und professionell aus. Stellen Sie sich vor, Sie müssen jetzt einen Code pflegen, der die elegante API verwendet, und Sie müssen suchen, wo der Löschaufruf ausgeführt wird. Sie suchen nach "api / entity" und müssen unter den Ergebnissen sehen, welche DELETE ausführt. Oder noch schlimmer, Sie haben einen Junior-Programmierer, der versehentlich PUT mit DELETE umgeschaltet hat und als URL die gleiche Scheiße passiert ist.
Meiner Meinung nach hat das Einfügen des Aktionsverbs in die URL Vorteile gegenüber der Verwendung der entsprechenden HTTP-Methode für diese Aktion, auch wenn sie nicht so elegant ist. Wenn Sie sehen möchten, wo der Löschaufruf erfolgt, müssen Sie nur nach "api / entity / delete" suchen. suchen und Sie werden ihn sofort finden.
Das Erstellen einer API ohne das gesamte HTTP-Methodenarray erleichtert das anschließende Konsumieren und Verwalten