Junior — Middle
Magyarázza el a HTTP PUT és PATCH módszerek közötti különbségeket az erőforrások frissítésekor.
sobes.tech MI
Válasz az MI-től
A HTTP PUT és PATCH módszerek közötti fő különbségek az erőforrások frissítésekor:
- PUT — teljes erőforrás frissítésére szolgál. A kliens a teljes erőforrás reprezentációját küldi, és a szerver ezt az új értékkel helyettesíti a meglévőt.
- PATCH — részleges erőforrás frissítésére szolgál. A kliens csak azokat a mezőket küldi, amelyeket módosítani akar, és a szerver csak ezeket frissíti, a többi változatlan marad.
Példa:
Ha van egy felhasználói objektum name és email mezőkkel:
- PUT kérés esetén mindkét mezőt küldeni kell, különben a hiányzókat törli vagy alaphelyzetbe állítja.
- PATCH kérés esetén csak az
emailmezőt küldheti, és a szerver csak azt frissíti.
C# Web API-ban a módszerek így nézhetnek ki:
[HttpPut("users/{id}")]
public IActionResult UpdateUser(int id, User user) {
// Felhasználó teljes frissítése
}
[HttpPatch("users/{id}")]
public IActionResult PatchUser(int id, JsonPatchDocument<User> patchDoc) {
// Felhasználó részleges frissítése
}
Így a PUT egy idempotens módszer a teljes helyettesítésre, a PATCH pedig részleges módosításokra.