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 განსაზღვრა | კლაიენტით | სერვერით |
| რესურსზე გავლენა | სრულად შეცვლის ან შექმნის | ჩვეულებრივ დამატებს ან მოქმედებას ახორციელებს |