Sobes.tech
Junior — Middle

Paaiškinkite HTTP PUT ir PATCH metodų skirtumus atnaujinant išteklius.

sobes.tech AI

Atsakymas iš AI

Pagrindiniai skirtumai tarp HTTP PUT ir PATCH metodų atnaujinant išteklius:

  • PUT — naudojamas visiškam ištekliaus atnaujinimui. Klientas siunčia visą ištekliaus reprezentaciją, o serveris pakeičia esamą išteklių nauju.
  • PATCH — naudojamas daliniam ištekliaus atnaujinimui. Klientas siunčia tik tuos laukus, kurie turi būti pakeisti, o serveris atnaujina tik juos, palikdamas kitus nepakitusius.

Pavyzdys:

Jei turite naudotojo objektą su laukais name ir email:

  • Su PUT užklausa turite siųsti abu laukus, kitaip trūkstami bus ištrinti arba nustatyti į numatytąją reikšmę.
  • Su PATCH užklausa galite siųsti tik email, ir serveris atnaujins tik jį.

C# Web API metodai gali atrodyti taip:

[HttpPut("users/{id}")]
public IActionResult UpdateUser(int id, User user) {
    // Viso naudotojo atnaujinimas
}

[HttpPatch("users/{id}")]
public IActionResult PatchUser(int id, JsonPatchDocument<User> patchDoc) {
    // Dalinis naudotojo atnaujinimas
}

Taigi, PUT yra idempotentinis metodas visiškai pakeisti, PATCH — daliniams pakeitimams.