2010-10-14 6 views

Antwort

14

Der Schlüsselwort für PUT für mich ist immer idempotent. Während Sie für POST immer einen "weiteren" Eintrag zum Systemstatus hinzufügen, ist die Aktion bei PUT die gleiche, auch wenn sie mehrmals ausgeführt wird (weil Sie einen Eintrag adressieren).

Beispiel:

tun 100-mal POST/Alben = Sie mit 100 verschiedenen Alben enden würde (aber mit gleichem Inhalt)

100-mal PUT/Alben zu tun/123 = Sie würde am Ende mit einem einzigen Album mit der ID 123 (mit dem Inhalt)

+1

POST muss nichts hinzufügen. –

+0

Genauso und um zu klären, besonders auf Victors Antwort Bezug nehmend, ist PUT ein Create beim ersten Aufruf und ein Update danach. Es bleibt also idempotent –

18

Es ist für beide verwendet. Quoth the RFC:

Die PUT-Methode fordert, dass die eingeschlossene Entität unter dem angegebenen Request-URI gespeichert wird. Wenn sich der Request-URI auf eine bereits vorhandene Ressource bezieht, sollte die beigefügte Entität als eine modifizierte Version der auf dem Ursprungsserver befindlichen Entität betrachtet werden. Wenn der Anforderungs-URI nicht auf eine vorhandene Ressource verweist und dieser URI vom anfragenden Benutzeragenten als neue Ressource definiert werden kann, kann der Ursprungsserver die Ressource mit diesem URI erstellen.

+0

Also, mit anderen Worten, einfügen, wenn nicht existiert - sonst, update. – Jnr

1

PUT wird tatsächlich zum Aktualisieren von Inhalten verwendet, aber wenn Sie bereits eine ID haben, aktualisieren Sie. In REST generierten Sie normalerweise POST zu /albums (oder was auch immer), um einen neuen Datensatz mit einer noch unbekannten ID zu erstellen. Da Sie eine ID haben, aktualisieren Sie das leere Dokument mit dieser ID auf den von Ihnen bereitgestellten Inhalt.

1

PUT ist eine neue oder ersetzen Sie eine vorhandene Ressource vollständig, wenn Sie den vorhandenen URI kennen oder was der neue URI sein wird. POST dient zum Aktualisieren von Teilen einer vorhandenen Ressource oder zum Erstellen einer neuen Ressource, wenn der Server den neuen URI zuweisen muss. So einfach ist das. Sowohl PUT als auch POST werden für das Erstellen und Aktualisieren verwendet. Es geht nicht darum, ob Sie den URI erstellen oder aktualisieren, oder ob Sie den Server für die Zuweisung benötigen.

Verwandte Themen