Junior
Kuo skiriasi PUT ir POST užklausos?
sobes.tech AI
Atsakymas iš AI
PUT naudojamas kurti arba atnaujinti išteklį pagal nurodytą URI. Jis yra idempotentiškas, tai reiškia, kad keli vienodi užklausos PUT turėtų sukelti tą patį išteklio būseną:
POST naudojamas siųsti duomenis serveriui ir gali sukurti naują išteklių, atnaujinti esamą arba atlikti kitą operaciją. Jis nėra idempotentiškas, ir keli vienodi POST užklausos gali sukelti kelių išteklių sukūrimą arba kelių operacijų atlikimą.
Pagrindiniai skirtumai:
| Savybė | PUT | POST |
|---|---|---|
| Naudojimas | Kurti/atnaujinti išteklių pagal URI | Siųsti duomenis, kurti/atnaujinti išteklius |
| Idempotentiškumas | Taip | Ne |
| URI | Nurodo tikslinį išteklių | Nurodo duomenų apdorojimo išteklių |
| Rezultatas | Pakeisti/sukurti išteklių pagal URI | Keisti serverio būseną |
Pavyzdys naudojant PUT (kurti arba atnaujinti vartotoją su ID 1):
// Tarkime, turime vartotojo duomenų objektą
const userData = {
name: "Ivan",
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('Klaida:', error));
Pavyzdys naudojant POST (sukurti naują vartotoją):
// Tarkime, turime naujo vartotojo duomenų objektą
const newUser = {
name: "Petras",
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('Klaida:', error));