Junior
Разкажете за метода PUT в REST API.
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 | От клиента | От сървъра |
| Влияние върху ресурса | Заменя или създава напълно | Обикновено добавя или извършва действие |