Sobes.tech
Senior

Kāda ir atšķirība starp PUT un POST metodēm? Kā tās uzvedas, nosūtot to pašu pieprasījumu vēlreiz? Ko dara PATCH?

sobes.tech AI

Atbilde no AI

HTTP PUT un POST metodes atšķiras pēc semantikas un uzvedības:

  • PUT — idempotenta metode, kas tiek izmantota pilnīgai resursa atjaunināšanai norādītajā URL. Atkārtoti nosūtot to pašu PUT pieprasījumu, rezultāts nemainīsies, jo resursu pārrakstīs ar tiem pašiem datiem.

  • POST — neidempotenta metode, parasti izmanto jaunu resursu izveidei vai darbību veikšanai. Atkārtota POST pieprasījuma nosūtīšana var novest pie dublēšanas vai operācijas atkārtošanas.

  • PATCH — tiek izmantots daļējai resursa atjaunināšanai, nosūtot tikai mainītos laukus. Atšķirībā no PUT, kas aizstāj visu resursu, PATCH piemēro izmaiņas esošajam objektam.

Piemērs:

PUT /users/123
{
  "name": "Иван",
  "age": 30
}

PATCH /users/123
{
  "age": 31
}

POST /users
{
  "name": "Иван",
  "age": 30
}

Atkārtoti nosūtot PUT ar tiem pašiem datiem, resursu nemainīs, POST atkārtota nosūtīšana izveidos jaunu lietotāju, bet PATCH atkārtoti atjauninās vecumu.