RESTful Weg, um Befehle zu senden
Wie senden Sie "Befehle" zu einem RESTful server?
Anwendungsfall: Mein server speichert bestimmte Informationen, so dass Sie nicht haben, zum Lesen der Datenbank jedes mal, dass Daten abgefragt werden. Ich brauche einen Weg, um einen Befehl zu senden von meinem client-Anwendung, die dem server mitteilen, um den cache leeren. Möchten Sie den Einsatz von POST-oder PUT auf einige URL, z.B. ".../flush_cache"?
Den "Befehl" nicht wirklich die Daten, die Bedürfnisse der "Representational State Transfer", es sei denn, dem Staat übertragen wird, ist das Ergebnis der command - "Schalter ist ausgeschaltet", "cache geleert", etc. Als eine Allgemeine Regel, wie funktioniert REST senden von Befehlen an den server?
InformationsquelleAutor der Frage Ralph | 2010-08-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich in einer solchen situation sehr viel in einem vergangenen Projekt. Da REST ist gut...um Ressourcen, es ist nicht immer klar, wie Sie mit Dingen umgehen, die sind Wirklich RPC in der Natur.
Eine einfache Möglichkeit, dies zu umgehen, ist, zu denken, es als bürokratischen Teil der restdie Anfrage kann eine Ressource selbst :
1 . "Sie Triggern möchten Sie einen Befehl auf meinem server ? zuerst füllen Sie dieses Formular I90292 und senden Sie es an uns" :
"Ok, wir werden sehen, was wir tun können. Ihre Fall Nummer ist 999"
201 Erstellt (oder 202 Angenommen als pro Kugel Kommentar)
Lage /Bürokratie/command-request/999
Dann prüft der client regelmäßig
GET /Bürokratie/command-request/999
Hoffentlich bekommt er eine Antwort wie die folgende
Natürlich, wenn der bürokratische service hat große Kunden-Pflege, die Sie bieten würde, die Kunden ihn anrufen, wenn es fertig ist, wenn er will :
"Sie wollen zum auslösen eines Befehls auf unserem server? Freundlicherweise füllen Sie dieses Formular aus und senden Sie es an uns. Beachten Sie, dass Sie beitreten können, Ihre Kontaktdaten, damit wir anrufen können Sie, wenn es fertig ist"
Oder als benutzerdefinierte http-header
X-Callback: http://client.com/bureaucracy/inbox
InformationsquelleAutor der Antwort redben
Ich würde vorschlagen, diese:
http://server.example/results/00001
), vielleicht mit einem 204 (No Content) status-und Location-header oder ein redirect (je nachdem, welcher client verstehen kann).Es ist bis zu Ihnen, zu entscheiden, auf den Lebenszyklus der Ergebnis-Ressource. Es könnte von kurzer Dauer sein, wenn Sie nicht brauchen, um zu speichern die Ergebnisse für lange. Der URI konstruiert werden könnte, aus einer UUID zum Beispiel.
InformationsquelleAutor der Antwort Bruno
In deinem Fall, warum nicht die
cache
die Ressource?Wenn Sie möchten, Spülen Sie es.
wenn Sie möchten, um eine neue zu erstellen.
Oder kombinieren Sie die beiden vorherigen in die folgenden:
InformationsquelleAutor der Antwort Martin Konecny