Junior — Middle
Vysvětlete rozdíly mezi metodami HTTP PUT a PATCH při aktualizaci zdrojů.
sobes.tech AI
Odpověď od AI
Hlavní rozdíly mezi metodami HTTP PUT a PATCH při aktualizaci zdrojů:
- PUT — používá se pro úplnou aktualizaci zdroje. Klient odešle úplnou reprezentaci zdroje a server nahradí stávající zdroj touto novou.
- PATCH — používá se pro částečnou aktualizaci zdroje. Klient odešle pouze pole, která je třeba změnit, a server je aktualizuje pouze, zatímco ostatní zůstanou nezměněny.
Příklad:
Pokud máte objekt uživatele s poli name a email:
- Při požadavku PUT musíte odeslat obě pole, jinak budou chybějící odstraněna nebo resetována.
- Při požadavku PATCH můžete odeslat pouze
email, a server jej aktualizuje pouze.
V C# Web API mohou metody vypadat takto:
[HttpPut("users/{id}")]
public IActionResult UpdateUser(int id, User user) {
// Kompletní aktualizace uživatele
}
[HttpPatch("users/{id}")]
public IActionResult PatchUser(int id, JsonPatchDocument<User> patchDoc) {
// Částečná aktualizace uživatele
}
Tedy, PUT je idempotentní metoda pro úplnou náhradu, PATCH pro částečné změny.