Alle Originalinhalte werden auf Ukrainisch erstellt. Noch nicht alle Inhalte wurden übersetzt. Einige Beiträge sind möglicherweise nur auf Ukrainisch verfügbar.Mehr erfahren

Was ist der Unterschied zwischen PUT und PATCH?

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.

19. Dez, 18:15 Uhr

Was sind SSL und TLS? Was ist der Unterschied?

meme code
meme code@memecode
19. Dez, 18:17 Uhr

Was ist das HTTP-Protokoll? Was ist der Unterschied zwischen HTTP und HTTPS?

meme code
meme code@memecode
19. Dez, 19:10 Uhr

Was ist ein "Man-in-the-Middle"-Angriff?

meme code
meme code@memecode
20. Dez, 17:33 Uhr

Was ist eine API? Kann eine Webanwendung mehr als eine API verwenden?

meme code
meme code@memecode
23. Dez, 10:18 Uhr

Was ist ein REST API? Grundprinzipien von REST und GET, POST, PUT, PATCH, DELETE.

meme code
meme code@memecode
23. Dez, 10:22 Uhr

Was ist RESTful und wie unterscheidet es sich von REST?

meme code
meme code@memecode
23. Dez, 11:29 Uhr

Was sind Cookies?

meme code
meme code@memecode
23. Dez, 11:40 Uhr

Was ist eine Sitzung? (Web)

meme code
meme code@memecode
24. Dez, 12:08 Uhr

Was ist Penetration Testing (Sicherheitstest)?

meme code
meme code@memecode
24. Dez, 12:08 Uhr

Was ist SQL Injection?

meme code
meme code@memecode
Was ist das DOM?
24. Dez, 12:22 Uhr

Was ist das DOM?

meme code
meme code@memecode
24. Dez, 12:23 Uhr

Was ist Cross-Site Scripting (XSS)?

meme code
meme code@memecode