Sobes.tech
Junior

Kāda ir atšķirība starp PUT un POST pieprasījumiem?

sobes.tech AI

Atbilde no AI

PUT tiek izmanto, lai izveidotu vai atjauninātu resursu pēc norādītā URI. Tas ir idempotents, tas nozīmē, ka vairāki vienādi pieprasījumi ar PUT būtu jānovērš vienā un tajā pašā resursa stāvoklī:

POST tiek izmantots datu sūtīšanai serverim un var izveidot jaunu resursu, atjaunināt esošo vai veikt citu darbību. Tas nav idempotents, un vairāki vienādi POST pieprasījumi var novest pie vairāku resursu izveides vai vairāku darbību veikšanas.

Galvenās atšķirības:

Raksturlielums PUT POST
Lietošana Resursa izveide/atjaunināšana pēc URI Datu sūtīšana, resursa izveide/atjaunināšana
Idempotentība
URI Norāda mērķa resursu Norāda datu apstrādes resursu
Rezultāts Resursa aizvietošana/izveide pēc URI Servera stāvokļa maiņa

Piemērs, izmantojot PUT (resursa izveide vai atjaunināšana ar ID 1):

// Pieņemsim, ka mums ir lietotāja dati objekts
const userData = {
  name: "Ivans",
  age: 30
};

fetch('/api/users/1', {
  method: 'PUT',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify(userData)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Kļūda:', error));

Piemērs, izmantojot POST (jauna lietotāja izveide):

// Pieņemsim, ka mums ir jauna lietotāja dati objekts
const newUser = {
  name: "Pēteris",
  age: 25
};

fetch('/api/users', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify(newUser)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Kļūda:', error));