Sobes.tech
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 email mező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.