Sobes.tech
Senior

Mis vahe on PUT ja POST meetoditel? Kuidas nad käituvad, kui sama päringut saadetakse uuesti? Mida teeb PATCH?

sobes.tech AI

Vastus AI-lt

HTTP PUT ja POST meetodid erinevad semantika ja käitumise poolest:

  • PUT — idempotentne meetod, mida kasutatakse ressursi täielikuks uuendamiseks määratud URL-i juures. Sama PUT-päringu uuesti saatmine ei muuda tulemust, kuna ressurss kirjutatakse üle sama andmetega.

  • POST — mitte-idempotentne meetod, mida tavaliselt kasutatakse uute ressursside loomisel või toimingute teostamisel. POST-päringu uuesti saatmine võib põhjustada duplikaate või operatsiooni kordamist.

  • PATCH — kasutatakse ressursi osaliseks uuendamiseks, saates ainult muudetud väljad. Erinevalt PUT-ist, mis asendab kogu ressursi, rakendab PATCH olemasolevale objektile muudatusi.

Näide:

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

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

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

Sama andmete saatmine PUT-iga ei muuda ressurssi, POST uuesti saatmine loob uue kasutaja, ja PATCH uuesti uuendab vanust.