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 | Jā | Nē |
| 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));