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.