Sobes.tech
Junior — Middle

Тафсир диҳед фарқиятҳои байни усулҳои HTTP PUT ва PATCH ҳангоми навсозии захираҳо.

sobes.tech AI

Ҷавоб аз AI

Асосӣ фарқиятҳо байни усулҳои HTTP PUT ва PATCH дар навсозии захираҳо:

  • PUT — барои навсозии пурраи захира истифода мешавад. Клиент намоиши пурраи захираро мефиристад ва сервер захираро бо ин навсозии нав иваз мекунад.
  • PATCH — барои навсозии қисмии захира истифода мешавад. Клиент танҳо он майдонҳоро мефиристад, ки бояд тағир дода шаванд, ва сервер танҳо онҳоро навсозӣ мекунад, боқимондаҳоро бе тағирот мемонад.

Масалан:

Агар шумо объекти корбар бо майдонҳои name ва email дошта бошед:

  • Бо дархости PUT, шумо бояд ҳарду майдонро фиристед, вагарна майдонҳои норасоида хориҷ ё барқарор карда мешаванд.
  • Бо дархости PATCH, шумо танҳо email мефиристед, ва сервер танҳо онро навсозӣ мекунад.

Дар C# Web API, усулҳо метавонанд чунин бошанд:

[HttpPut("users/{id}")]
public IActionResult UpdateUser(int id, User user) {
    // Навсозии пурраи корбар
}

[HttpPatch("users/{id}")]
public IActionResult PatchUser(int id, JsonPatchDocument<User> patchDoc) {
    // Навсозии қисмии корбар
}

Бинобар ин, PUT усули идемпотентӣ барои ивазкунии пурра аст, PATCH — барои тағироти қисмӣ.