Sobes.tech
Senior

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.