Ich weiß, dass PUT idempotent ist, aber wie kann ich es programmatisch sicherstellen? Welche Bedingungen muss ich erfüllen, um einen vollständig idempotenten Endpunkt zu schaffen?So erstellen Sie einen idempotenten Endpunkt
Antwort
Aus RESTful Service Sicht für eine Operation (oder Service-Aufruf) werden Kunden idempotent, immer wieder den gleichen Anruf tätigen können, während das gleiche Ergebnis. Mit anderen Worten, die Ausführung mehrerer identischer Anforderungen hat den gleichen Effekt wie die Ausführung einer einzelnen Anfrage. Beachten Sie, dass während idempotente Operationen das gleiche Ergebnis auf dem Server (keine Nebenwirkungen) produzieren, die Antwort selbst möglicherweise nicht die gleiche sein (z. B. eine Ressource Status kann sich zwischen Anforderungen ändern).
Eine PUT
soll eine Ressource mit neuen Werten aktualisieren, die im Anfragetext empfangen wurden. Daher sollte das Ergebnis auf dem Server nicht geändert werden (ungleich POST
zum Beispiel, wenn mehrere Anforderungen entweder zu einem Konfliktfehler führen oder wenn mehrere Ressourcen erstellt werden), ob es nur ein- oder mehrmals gesendet wird.
Sie müssen darauf achten, dass es einen Unterschied zwischen _idempotent_ und _safe_ gibt. _Idempotent_ bedeutet, dass Sie dieselbe Methode beliebig oft aufrufen können, und Sie erhalten das gleiche Ergebnis. Dies bedeutet jedoch nicht, dass die Ressource nicht geändert wird. Bestes Beispiel ist die _delete_ Methode/http Verb. _POST_ und _PATHCH_ sind weder _idempotent_ noch _safe_, während _PUT_ und _DELETE_ _idempotent_ sind, aber * nicht * _safe_. – andih
- 1. einen idempotenten Einsatz mit postrgres Doing
- 2. Erstellen Sie einen eigenständigen Java-Websocket-Client-Endpunkt?
- 3. So erstellen Sie einen scala.concurrent.ExecutionContext
- 4. So erstellen Sie einen Binärbaum
- 5. Wie testen Sie einen Endpunkt?
- 6. So senden Sie Daten an einen HTTP-Endpunkt mit NodeJs
- 7. So senden Sie benutzerdefinierte HTTP-Header an einen Endpunkt?
- 8. So initialisieren Sie einen WebSocket-Endpunkt mit Konstruktorparametern
- 9. java trikot einen Login/Passwort-Endpunkt erstellen
- 10. So erstellen Sie MasterEndpoint programmgesteuert
- 11. So ändern Sie Standard findAll Endpunkt
- 12. Beschleunigung von idempotenten Aufgaben, die verstreut sind
- 13. So erstellen Sie einen Benutzer mit gesichertem Passwort Feld
- 14. So erstellen Sie einen Soap-Client ohne WSDL
- 15. Einen Slider so erstellen?
- 16. So erstellen Sie einen dynamischen UIPageViewController
- 17. So erstellen Sie einen Schatten für UICollectionViewCell
- 18. So erstellen Sie einen Spinner mit Optionsschaltflächen
- 19. So erstellen Sie einen Zugriffspunkt programmgesteuert
- 20. So erstellen Sie einen Vordergrund NetServer
- 21. So erstellen Sie einen DDE-Server
- 22. So erstellen Sie einen Austausch mit rabbitmqctl
- 23. So erstellen Sie einen Container in Docker
- 24. So erstellen Sie einen Domain-Alias (Mapping)
- 25. So erstellen Sie einen Preloader mit Angular2
- 26. So erstellen Sie einen Listener für Konsolenbefehle
- 27. So erstellen Sie einen neuen leeren Baum
- 28. So erstellen Sie einen benutzerdefinierten Sitzungsspeicher
- 29. So erstellen Sie einen dynamischen Kristallbericht
- 30. So erstellen Sie einen Webservice von Qt
Meinst du wirklich _idempotent_ oder meinst du _safe_ (nebenwirkungsfrei)? Idempotent bedeutet nur, dass Sie dasselbe Ergebnis erhalten, wenn Sie _PUT_ auf einer Ressource aufrufen. Sie ersetzen nur den Inhalt der Ressource durch den neuen Inhalt, das Ergebnis sollte immer (beispielsweise) ein HTTP-Statuscode 200 sein (solange die Ressource existiert). – andih