Sobes.tech
Junior — Middle

Оё метавонед фарқият байни усулҳои HTTP PUT ва PATCH дар контексти REST API шарҳ диҳед?

sobes.tech AI

Ҷавоб аз AI

Методҳои HTTP PUT ва PATCH барои навсозии захираҳо дар API-и REST истифода мешаванд, аммо дар семантика ва рафтор фарқ мекунанд:

  • PUT — як усули идемпотентӣ аст, ки тамоми захираро дар сервер бо намоиши нав, ки дар ҷисми дархост фиристода мешавад, иваз мекунад. Агар захира вуҷуд надошта бошад, метавонад сохта шавад. Иҷрои такрории дархостҳо бо маълумоти якхела натиҷаи ҳамонро медиҳад.

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

Масалан:

PUT /users/123
{
  "name": "Иван",
  "email": "ivan@example.com"
}

Ҳамаи захираро барои корбар 123 бо объекти нав, ки дорои ном ва почтаи электронӣ аст, иваз мекунад.

PATCH /users/123
{
  "email": "newemail@example.com"
}

Фақат майдони почтаи электронӣ навсозӣ мешавад, номи тағир намеёбад.