Sobes.tech
Junior — Middle

Kas REST API-s PUT-päringut saab pidada korduvalt turvaliseks ilma ressursi olekut muutmata?

sobes.tech AI

Vastus AI-lt

REST API-s peetakse PUT meetodit idempotentseks, mis tähendab, et korduv PUT-kutse sama andmetega ei tohiks pärast esimest taotlust ressurssi seisundit muuta. Kui PUT-taotlus ei muuda ressursi seisundit (näiteks saadetakse sama andmetega, mis juba salvestatud), võib seda pidada korduvaks ohutuks idempotentsuse mõttes.

Kuid on oluline mõista, et PUT-i idempotentsus ei taga, et serveril ei esine kõrvaltoimeid (näiteks logimine või loendurid), kuid ressursi seisukohast ei tohiks korduv PUT põhjustada muudatusi.

Näide:

PUT /users/123
{
  "name": "Иван",
  "email": "ivan@example.com"
}

Kui seda taotlust saadetakse mitu korda sama andmetega, ei muutu kasutaja seisund pärast esimest taotlust.