Die Nutzung von GET -, PUT-und DELETE-HTTP-Methoden im RESTful-web-services
Arbeite ich an einem Ticket-Reservierung Anwendung. Ich bin erforderlich, um das erstellen eines web-service, der im Antrag für die Stornierung, prüft mit einem downstream-system (per SOAP), ob es abgebrochen werden kann, und gibt die entsprechende Antwort an das aufrufende system nach dem Update meiner Tabellen.
Muss ich erstellen Sie eine Reihe ähnlicher web-services für die Absage, Verschiebung, et, für die ich planen der Verwendung von RESTful web-services
Diese Plane ich zu erreichen mit der POST-Methode für die REST-API, mithilfe von JAX-RS. Ich konnte sehen, dass alle web-Dienste, die ich bin, zu bauen Klage der POST-verb, und die anderen HTTP-Methoden (GET, POST und DELETE) nicht scheinen, wie Sie verwendet werden müssen hier. In diesem Fall, was ist der eigentliche Anwendungsfall für diese HTTP-Methoden bei REST? Bin ich im Recht, nur mit der POST?
- Sie nicht brauchen, um .... das ist das schöne daran.. deine sind nicht gebunden, um Endpunkte für Sie.
- Dito gtgaxiola. Es gibt viel Konsens darüber, was jedes HTTP-verb sollte
do
im REST. Stellt das Ergebnis in den gegenseitigen Bekommt. BEITRÄGE ändern. Das ist die ganz kurze version. 😉 Es sei denn, ein Rücktritt war eine Person in Ihrem system, die erstellt werden könnte und abgerufen werden, und haben kein Geschäft umgesetzt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre REST-Ressource ist das ticket. Verwenden Sie zu Lesen Bekommt das ticket, LEGEN Sie zum ändern des ticket-Status und LÖSCHEN zu tun, eine logische löschen (Kündigung).
Für jede andere operation, verwenden Sie das wildcard-operation POST.
Haben Sie einen Blick auf dieses blog-post Kurze Einführung zu REST, wo der Autor geht durch den Kern REST Prinzipien.
Für die Zwecke einer Kündigung, würde ich tatsächlich verwenden die DELETE-Methode. Im Falle einer erfolgreichen Stornierung, wieder ein 200 mit entweder response body bestätigt Erfolg oder eine Antwort Körper mit den details der Reservierung. Oder ein 204 wenn Sie nicht wollen, um wieder eine Körper.
Wenn es nicht abgebrochen werden können, haben Sie Ihre Wahl aus der 400-Serie von Fehlermeldungen (z.B. 404, wenn es keine Reservierung, 403, wenn die Anfrage verboten ist, etc.) oder die 500-Serie, wenn es einen Fehler oder eine Störung.
Werden Sie sicherlich verwenden, die andere HTTP-Verben für alle anderen-Reservierung-Aktionen-Buchung, ändern, etc.
Betrachten Sie Ihre Ticket-Reservierung, da die Ressourcen der Anwendung.
Kunden die für Ihre Anwendung würde:
GET
Anforderung zum abrufen einer Darstellung (XML, JSON oder sonst was) eine oder mehrere ticket-Reservierung (aufgrund der URL, die Sie verwenden, zB:/tickets
abrufen, alle von Ihnen - oder alle dürfen Sie sehen,/tickets/1
zum abrufen einer Darstellung der Ticket-Buchung mit der id1
,tickets/?start=0&size=10
für paginierte Inhalte, etc.)POST
Anfragen auf/tickets
erstellen Sie eine neue Reservierung (und die Antwort würde dem Kunden einelocation
geben Sie den Speicherort der erstellten Reservierung)PUT
Anfrage/tickets/1
(mit einer Darstellung der neuen Reservierung in den request-body) zu aktualisieren, die Reservierung identifiziert1
DELETE
Anfrage/tickets/1
zum löschen der Reservierung identifiziert1
Die Grundidee hinter der Verwendung solcher Verben ist, dass die URLs sollten Ressourcen identifizieren (und nicht Aktionen), und das HTTP-verb wäre die Aktion.
Wenn Sie alles mit
POST
werden Sie mehr oder weniger tun, SEIFE.Dieser Artikel wird Ihnen mehr Informationen geben, auf der Hut, versuchte ich hihlight oben: http://martinfowler.com/articles/richardsonMaturityModel.html
Gibt es eine Menge zu sagen über das entwickeln von RESTful-Anwendungen. Sie wirklich Lesen sollten eine oder mehrere dieser Bücher: "Restful Web Services" - http://amzn.com/0596529260, "RESTful-Web-APIs" - http://amzn.com/B00F5BS966, "REST in Practice: Hypermedia-Systeme-Architektur" - http://amzn.com/B0046RERXY oder "RESTful Web Services Cookbook" - http://amzn.com/B0043D2ESQ.
Holen Sie sich eine Tasse Kaffee und genießen Sie ein paar Lesen 🙂