2014-10-29 11 views
6

Die ThoughtWorks Technology Radar July 2014 erwähnt unter Techniques/Trial ein neuer Trend namens REST without PUT. Sie erklären es so:REST ohne PUT

Im letzten Radar wir über Capturing Explicit Domain Ereignisse gesprochen, Betonung auf die Aufzeichnung der geschäftssinnvollen Ereignisse, die Zustandsübergänge statt nur CRUD'ing Einheiten ausgelöst haben. REST Schnittstellen verwenden häufig PUT, um Ressourcenstatus zu aktualisieren, jedoch ist es oft besser, POST aufzuzeichnen, um ein neues Ereignis Ressource aufzuzeichnen, die Absicht erfasst. REST ohne PUT hat einen Seitenvorteil der Trennung von Befehls- und Abfrage-Schnittstellen und zwingt die Verbraucher, eine eventuelle Konsistenz zuzulassen.

Gibt es zusätzliche Ressourcen, wo man darüber lesen kann? Ist der Begriff REST without PUT eine Idee von ThoughtWorks, oder ist das etwas Akademisches oder ...?

Hinweise dazu?

+1

https://groups.yahoo.com/neo/groups/rest-discuss/conversations/topics/2549 –

+0

Danke für den Link, aber diese kleine Diskussion ist wahrscheinlich nicht der (einzige oder wichtigste) Grund, warum ThoughtWorks entschieden hat hol den Begriff in ihr Radar, oder? Ich hätte etwas "mehr" erwartet, etwas Offizielleres, ...? (PS: Wie auch immer, vielen Dank für den Link, bitte nicht falsch!) –

+0

Es ist über das einzige, was ich finden konnte, außer ThoughtWorks eigene Seite –

Antwort

3

Meiner Meinung nach sollte man aufhören, auf CRUD-Operationen zurückzuschauen und sich auf Zustandsübergänge zu konzentrieren. Dann ordnen Sie den Übergängen bestimmte Ereignisse zu. Einer von ihnen wird verwendet, um die Entität zu aktualisieren. Wie es aktualisiert würde und was aktualisiert würde, wird über den Kontext des Ereignisses entschieden. Man muss das POST-Ereignis der Aktualisierung anstatt der PUT-Aktualisierung senden.

BTW, die ein Problem mit der Verwendung von reinem HTML in REST löst - HTML erlaubt nicht, PUT oder DELETE ohne JavaScript auszulösen.

1

REST ohne PUT ist nicht Standard; wie du vermutet hast, ist dies nur ThoughtWorks Sache.