У чым асноўная розніца паміж PUT
і PATCH
запыты, і калі мы павінны выкарыстоўваць адзін над іншым?
PUT і PATCH - гэта дзеясловы HTTP, і абодва яны датычацца абнаўлення рэсурсу.
Асноўнае адрозненне паміж запытамі PUT і PATCH заключаецца ў тым, як сервер апрацоўвае ўкладзены аб'ект, каб змяніць рэсурс, ідэнтыфікаваны запытам-URI.
У PUT
Па запыце, укладзены аб'ект лічыцца мадыфікаванай версіяй рэсурсу, які захоўваецца на зыходным серверы, і кліент патрабуе замены захаванай версіі.
Аднак, калі PATCH
укладзены аб'ект утрымлівае набор інструкцый, якія апісваюць, як рэдагаваць рэсурс, які пражывае ў цяперашні час на пачатковым серверы, трэба змяніць для атрымання новай версіі.
Акрамя таго, яшчэ адно адрозненне заключаецца ў тым, што калі вы хочаце абнавіць рэсурс з PUT
Запыт, вы павінны адправіць поўную карысную нагрузку як запыт, тады як пры PATCH
вы адпраўляеце толькі параметры, якія вы хочаце абнавіць.
Звязаныя:
Дапусцім, у нас ёсць рэсурс, які змяшчае імя і прозвішча чалавека.
Калі мы хочам змяніць імя, мы адпраўляем PUT
запыт на абнаўленне
{ 'first': 'Michael', 'last': 'Angelo' }
Тут, хоць мы і мяняем толькі першае імя, з PUT
Па запыце мы павінны адправіць абодва параметры першым і апошнім. Іншымі словамі, абавязковая адпраўка ўсіх значэнняў зноў, поўная карысная нагрузка.
Калі мы адпраўляем PATCH
аднак, мы адпраўляем толькі дадзеныя, якія мы хочам абнавіць. Іншымі словамі, мы адпраўляем толькі імя для абнаўлення, прозвішча адпраўляць не трэба.
Па гэтай прычыне PATCH
запыт патрабуе меншай прапускной здольнасці.