Aký je rozdiel medzi metódami PUT a POST? Ako sa správajú pri opätovnom odoslaní toho istého dopytu? Čo robí PATCH?
sobes.tech AI
Odpoveď od AI
Metódy HTTP PUT a POST sa semantického a správania sa líšia:
-
PUT — idempotentná metóda, ktorá sa používa na úplnú aktualizáciu zdroja na zadanom URL. Opätovné odoslanie rovnakého požiadavku PUT nezmení výsledok, pretože zdroj bude prepísaný rovnakými údajmi.
-
POST — neidempotentná metóda, zvyčajne sa používa na vytváranie nových zdrojov alebo na vykonávanie akcií. Opätovné odoslanie požiadavku POST môže viesť k duplikátom alebo opakovaniu operácie.
-
PATCH — používa sa na čiastočnú aktualizáciu zdroja, odosielajú sa iba zmenené polia. Na rozdiel od PUT, ktorý nahrádza celý zdroj, PATCH aplikuje zmeny na existujúci objekt.
Príklad:
PUT /users/123
{
"name": "Иван",
"age": 30
}
PATCH /users/123
{
"age": 31
}
POST /users
{
"name": "Иван",
"age": 30
}
Opätovné odoslanie PUT s rovnakými údajmi nezmení zdroj, opätovné odoslanie POST vytvorí nového používateľa, a opätovné odoslanie PATCH aktualizuje vek znova.