Junior
Papaskinkite apie PUT metodą REST API.
sobes.tech AI
Atsakymas iš AI
PUT metodas naudojamas kurti arba atnaujinti išteklių nurodytu URI.
Pagrindinės savybės:
- Idempotentiškumas: Pakartotinai vykdant tą pačią PUT užklausą su tuo pačiu turiniu, pasiekiamas tas pats išteklių būvis serveryje (nors serverio atsakymas gali skirtis).
- Pilnas pakeitimas: PUT užklausa siunčia visiškai naują išteklio reprezentaciją, pakeisdama esamą.
- Kūrimas arba atnaujinimas: Jei išteklis nurodytu URI neegzistuoja, PUT jį sukuria. Jei egzistuoja — atnaujina. Sėkmingas PUT užklausos metu išnyksta išteklis yra sukuriamas, dažniausiai grąžinant 201 Created statusą. Esamo ištekliaus atnaujinimas dažniausiai grąžina 200 OK arba 204 No Content (jei atsakyme nėra turinio).
Tipiniai naudojimo scenarijai:
- Vartotojo pilno profilio atnaujinimas.
- Išteklio kūrimas, jei klientas nurodo jo URI.
PUT užklausos pavyzdys:
PUT /users/123 HTTP/1.1
Host: api.example.com
Content-Type: application/json
{
"id": 123,
"name": "Naujas Vardas",
"email": "new.email@example.com"
}
Serveris gaus šią užklausą ir arba sukurs vartotoją su id=123, arba visiškai pakeis naudotojo informaciją su šiuo ID duomenimis iš užklausos turinio.
PUT skiriasi nuo POST šiais būdais:
- PUT naudojamas atnaujinti arba sukurti išteklių pagal žinomą URI, kurį nurodo klientas. POST naudojamas ištekliui sukurti, kai serveris nurodo naujo ištekliaus URI, arba kitoms operacijoms, kurios nepriklauso nuo kitų HTTP metodų.
- PUT yra idempotentiškas, POST — ne. Pakartotinės POST užklausos su tuo pačiu turiniu gali sukurti kelis vienodus išteklius arba sukelti skirtingus šalutinius efektus.
Lyginamoji lentelė PUT ir POST:
| Savybė | PUT | POST |
|---|---|---|
| Paskirtis | Išteklio kūrimas arba atnaujinimas | Išteklio kūrimas, duomenų siuntimas |
| Idempotentiškumas | Taip | Ne |
| URI nustatymas | Kliento nurodymu | Serverio nustatytas |
| Įtakos ištekliui | Visapusiškai pakeičia arba sukuria | Paprastai prideda arba vykdo veiksmą |