Junior
Պատմեք մեզ REST API-ում PUT մեթոդի մասին։
sobes.tech AI
Պատասխան AI-ից
Մեթոդը PUT օգտագործվում է ռեսուրս ստեղծելու կամ թարմացնելու համար նշված URI-ով:
Հիմնական առանձնահատկությունները՝
- Իդեմպոտենտություն: Միևնույն PUT հարցումը միևնույն մարմնով կրկնելը կհանգեցնի նույն ռեսուրսի վիճակին (համենայն դեպս, պատասխանն առցանց կարող է տարբեր լինել):
- Լրիվ փոխարինում: PUT հարցումը ուղարկում է ռեսուրսի ամբողջական նոր ներկայացում, որը փոխարինում է առկա ռեսուրսին:
- Ստեղծում կամ թարմացում: Եթե նշված URI-ով ռեսուրսը գոյություն չունի, PUT այն ստեղծում է: Եթե կա՝ թարմացնում է: Եթե ռեսուրսը բացակայում է, հաջող PUT հարցում այն ստեղծվում է, ինչը սովորաբար վերադարձնում է 201 Created կարգավիճակը: Կանխատեսում է, որ առկա ռեսուրսի թարմացումը սովորաբար վերադարձնում է 200 OK կամ 204 No Content (եթե պատասխանին մարմին չկա):
Օգտագործման հիմնական դեպքերը՝
- Օգտագործողի ամբողջական պրոֆիլի թարմացում:
- Եթե հաճախորդը որոշում է իր URI-ն՝ ռեսուրս ստեղծելը:
Օրինակ PUT հարցում՝
PUT /users/123 HTTP/1.1
Host: api.example.com
Content-Type: application/json
{
"id": 123,
"name": "Նոր անուն",
"email": "new.email@example.com"
}
Սերվերը կստանա այս հարցումը և կամ ստեղծում է օգտագործողին id=123, կամ ամբողջությամբ փոխարինում է այդ ID-ով օգտագործողի մասին տեղեկությունները՝ տվյալներով, որոնք տրված են հարցման մարմնում:
PUT-ը տարբերվում է POST-ից հետևյալ կերպ՝
- PUT-ը օգտագործվում է ռեսուրսը թարմացնելու կամ ստեղծելու համար հայտնի URI-ով, որը որոշում է հաճախորդը: POST-ը օգտագործվում է ռեսուրս ստեղծելու համար, որտեղ սերվերը որոշում է նոր ռեսուրսի URI-ն, կամ այլ գործողությունների համար, որոնք չեն պատկանում այլ HTTP մեթոդների:
- PUT-ը իդեմպոտենտ է, POST-ը՝ ոչ: Կրկնվող POST հարցումները նույն մարմնով կարող են ստեղծել մի քանի նույնական ռեսուրսներ կամ առաջացնել տարբեր կողմնակի ազդեցություններ:
Համեմատական աղյուսակ PUT և POST-ի միջև՝
| Գծագիր | PUT | POST |
|---|---|---|
| Նպատակը | Ռեսուրս ստեղծել կամ թարմացնել | Ռեսուրս ստեղծել, տվյալներ ուղարկել |
| Իդեմպոտենտություն | Այո | Ոչ |
| URI որոշում | Հաճախորդով | Սերվերով |
| Ռեսուրսի վրա ազդեցություն | Փոխարինում կամ լրիվ ստեղծում | Սովորաբար ավելացնում կամ գործողություն կատարում |