InhaltsverzeichnisKlicke auf den Link, um zur gewünschten Stelle zu navigieren
Dieser Inhalt wurde automatisch aus dem Ukrainischen übersetzt.
PUT und PATCH sind zwei HTTP-Methoden, die verwendet werden, um Ressourcen auf einem Server im Kontext von RESTful Webdiensten zu aktualisieren. Der Hauptunterschied zwischen ihnen besteht darin, wie sie mit bestehenden Ressourcen interagieren.
PUT (Ersetzen des Objekts)
Die PUT-Anfrage gibt an, dass der Client eine neue Darstellung der Ressource sendet, die den aktuellen Zustand der Ressource vollständig ersetzen oder eine neue erstellen soll, wenn sie nicht existiert. Mit anderen Worten, die gesamte Ressource muss durch die neue ersetzt werden.
Ruby on Rails Beispiel:
# Controller
def update
@user = User.find(params[:id])
if @user.update(user_params)
render json: @user
else
render json: @user.errors, status: :unprocessable_entity
end
end
In diesem Beispiel wird update mit der PUT-Anfrage verwendet, und @user.update(user_params) ersetzt alle Attribute des Benutzers durch neue Werte, die vom Client kommen. Es wird angenommen, dass user_params alle Parameter des Objekts (Modells) enthält.
PATCH (partielle Aktualisierung)
Die PATCH-Anfrage gibt an, dass der Client eine partielle Aktualisierung der Ressource sendet, d.h. nur die Daten, die geändert werden müssen, ohne die gesamte Information über die Ressource zu senden. Dies ist praktisch, wenn der Client nur bestimmte Felder der Ressource aktualisieren möchte. Zum Beispiel - nur einen Abschnitt des Formulars mit Informationen über sich selbst auf der Website.
Ruby on Rails Beispiel:
# Controller
def update
@user = User.find(params[:id])
if @user.update(user_partial_params)
render json: @user
else
render json: @user.errors, status: :unprocessable_entity
end
end
Hier wird @user.update(user_partial_params) verwendet, um den Benutzer mit einer PATCH-Anfrage partiell zu aktualisieren, wobei user_partial_params nur die Felder enthält, die aktualisiert werden müssen.
Zusammenfassend lässt sich sagen, dass PUT für die vollständige Aktualisierung einer Ressource verwendet wird, während PATCH für die partielle Aktualisierung verwendet wird, wodurch andere Teile der Ressource unverändert bleiben.
Ruby on Rails ist ein ziemlich intelligentes Framework und es bestimmt selbst, welche Anfrage es stellen muss. Dies ermöglicht es, die Logik des Controllers zu automatisieren und zu vereinfachen und macht den Code sauberer und verständlicher.
Technisch gesehen kann der Aufruf @user.update(user_params) (den wir zuvor als PUT betrachtet haben) PATCH und nicht PUT sein, da das Formular im Frontend nicht alle Felder des Objekts enthält.
Dieser Beitrag hat noch keine Ergänzungen vom Autor.