Sobes.tech
Junior — Middle

Wyjaśnij różnice między metodami HTTP PUT i PATCH podczas aktualizacji zasobów.

sobes.tech AI

Odpowiedź od AI

Główne różnice między metodami HTTP PUT i PATCH przy aktualizacji zasobów:

  • PUT — służy do pełnej aktualizacji zasobu. Klient wysyła pełną reprezentację zasobu, a serwer zastępuje istniejący zasób tą nową.
  • PATCH — służy do częściowej aktualizacji zasobu. Klient wysyła tylko te pola, które chce zmienić, a serwer aktualizuje tylko je, pozostawiając pozostałe bez zmian.

Przykład:

Jeśli masz obiekt użytkownika z polami name i email:

  • Przy żądaniu PUT musisz wysłać oba pola, w przeciwnym razie brakujące zostaną usunięte lub zresetowane.
  • Przy żądaniu PATCH możesz wysłać tylko email, a serwer zaktualizuje tylko to.

W C# Web API metody mogą wyglądać tak:

[HttpPut("users/{id}")]
public IActionResult UpdateUser(int id, User user) {
    // Pełna aktualizacja użytkownika
}

[HttpPatch("users/{id}")]
public IActionResult PatchUser(int id, JsonPatchDocument<User> patchDoc) {
    // Częściowa aktualizacja użytkownika
}

Tak więc, PUT jest metodą idempotentną do pełnej zamiany, PATCH — do częściowych zmian.