Яка різниця між методами PUT, POST та PATCH у протоколі HTTP?
Яка різниця між методами PUT, POST та PATCH у протоколі HTTP?
Відповіді:
Різниця між PUT, POST, GET, DELETE та PATCH HTTP дієсловами:
Найбільш часто використовувані дієслова HTTP POST, GET, PUT, DELETE схожі на операції CRUD (Створення, читання, оновлення та видалення) в базі даних. Ми вказуємо ці HTTP дієслова у великій справі. Отже, нижче - порівняння між ними.
PATCH: подає часткову модифікацію ресурсу. Якщо вам потрібно оновити лише одне поле для ресурсу, ви можете скористатися методом PATCH.
Примітка.
Оскільки POST, PUT, DELETE змінює вміст, тести з Fiddler для наведеної нижче URL-адреси просто імітують оновлення. Він фактично не видаляє і не змінює. Ми можемо просто побачити коди статусу, щоб перевірити, чи відбуваються вставки, оновлення, видалення.
URL: http://jsonplaceholder.typicode.com/posts/
1) Отримайте:
GET - найпростіший тип методу запиту HTTP; той, який браузери використовують щоразу, коли ви натискаєте посилання або вводите URL-адресу в адресний рядок. Він інструктує сервер передавати клієнту дані, визначені URL-адресою. Дані ніколи не слід змінювати на стороні сервера внаслідок GET-запиту. У цьому сенсі запит GET є лише для читання.
Перевірка за допомогою Fiddler або PostMan: Ми можемо використовувати Fiddler для перевірки відповіді. Відкрийте Fiddler та перейдіть на вкладку Compose. Вкажіть дієслово та URL, як показано нижче, та натисніть Виконати, щоб перевірити відповідь.
Дієслово: GET
URL: http://jsonplaceholder.typicode.com/posts/
Відповідь: Відповідь ви отримаєте у вигляді:
"userId": 1, "id": 1, "title": "sunt aut ...", "body": "quia et suscipit ..."
У шляху "щасливого" (або без помилки) GET повертає представлення у XML або JSON та код відповіді HTTP 200 (ОК). У випадку помилки він найчастіше повертає 404 (NOT FOUND) або 400 (BAD REQUEST).
2) POST:
Дієслово POST в основному використовується для створення нових ресурсів. Зокрема, він використовується для створення підпорядкованих ресурсів. Тобто підпорядковуватися якомусь іншому (наприклад, батьківському) ресурсу.
Після успішного створення поверніть HTTP-статус 201, повертаючи заголовок Location із посиланням на новостворений ресурс зі статусом HTTP 201.
Перевірка за допомогою Fiddler або PostMan: Ми можемо використовувати Fiddler для перевірки відповіді. Відкрийте Fiddler та перейдіть на вкладку Compose. Вкажіть дієслово та URL, як показано нижче, та натисніть Виконати, щоб перевірити відповідь.
Дієслово: POST
URL: http://jsonplaceholder.typicode.com/posts/
Орган запиту:
дані: {title: 'foo', body: 'bar', userId: 1000, Id: 1000}
Відповідь: Ви отримаєте код відповіді як 201.
Якщо ми хочемо перевірити вставлений запис на Id = 1000, змінимо дієслово на Отримати і скористатися тим самим URL-адресою та натисніть Виконати.
Як було сказано раніше, вищевказаний URL дозволяє лише читати (GET), ми не можемо читати оновлені дані реально.
3) PUT:
PUT найчастіше використовується для можливостей оновлення , переносячи на відомий URI ресурс разом із органом запиту, що містить нещодавно оновлене представлення вихідного ресурсу.
Перевірка за допомогою Fiddler або PostMan: Ми можемо використовувати Fiddler для перевірки відповіді. Відкрийте Fiddler та перейдіть на вкладку Compose. Вкажіть дієслово та URL, як показано нижче, та натисніть Виконати, щоб перевірити відповідь.
Дієслово: ПУТ
URL: http://jsonplaceholder.typicode.com/posts/1
Орган запиту:
дані: {title: 'foo', body: 'bar', userId: 1, Id: 1}
Відповідь: Після успішного оновлення він повертає 200 (або 204, якщо не повертає вмісту в тілі) з PUT.
4) УДАЛИТИ:
DELETE зрозуміти досить просто. Він використовується для видалення ресурсу, ідентифікованого URI.
Після успішного видалення поверніть HTTP-статус 200 (ОК) разом із тілом відповіді, можливо, представлення видаленого елемента (часто вимагає занадто великої пропускної здатності) або завершений відповідь (див. Повернення Значень нижче). Або це, або поверніть HTTP-статус 204 (NO CONTENT) без органу відповіді. Іншими словами, рекомендовані відповіді - статус 204 без тіла, або відповідь у стилі JSEND та статус HTTP 200.
Перевірка за допомогою Fiddler або PostMan: Ми можемо використовувати Fiddler для перевірки відповіді. Відкрийте Fiddler та перейдіть на вкладку Compose. Вкажіть дієслово та URL, як показано нижче, та натисніть Виконати, щоб перевірити відповідь.
Дієслово: УДАЛИТИ
URL: http://jsonplaceholder.typicode.com/posts/1
Відповідь: Після успішного видалення він повертає HTTP-статус 200 (ОК) разом із тілом відповіді.
Приклад між PUT та PATCH
ПУТ
Якщо мені довелося змінити своє ім'я, тоді надішліть запит PUT для оновлення:
{"first": "Nazmul", "last": "hasan"} Отже, тут для оновлення імені нам потрібно знову надіслати всі параметри даних.
ПАТЧ:
Патч-запит говорить, що ми надсилатимемо лише ті дані, які нам потрібно змінити, не змінюючи і не впливаючи на інші частини даних. Наприклад: якщо нам потрібно оновити лише ім’я, ми передаємо лише ім’я.
Для отримання додаткової інформації перегляньте посилання нижче:
https://jsonplaceholder.typicode.com/
https://github.com/typicode/jsonplaceholder#how-to
PUT = замініть ЦІЛЬКИЙ РЕСУРС на нове представлене представлення
PATCH = замініть частини вихідного ресурсу на надані значення ТА | АБО інші частини ресурсу оновлюються, що ви не надали (часові позначки) І | АБО оновлення ресурсу впливає на інші ресурси (відносини)
Нижче наведене визначення - із прикладу реального світу.
Приклад огляду
Для всіх даних клієнта ми зберігаємо ідентифікатор, щоб знайти ці клієнтські дані, і ми надішлемо цей ідентифікатор тому клієнту для довідки.
ПОШТА
ПУТ
ПАТЧ
Примітка. У методі Put ми не кидаємо виняток, якщо ідентифікатор не знайдений. Але в методі Patch ми викидаємо виняток, якщо ідентифікатор не знайдений.
Повідомте мене, чи є у вас запити щодо вищезазначеного.
GET / PUT - ідентичний потенціал, PATCH може бути іноді безсильним
Що є ідентичним - Це означає, що якщо ми запускаємо запит кілька разів, він не повинен впливати на результат. (Той же вихід. Скажімо, корова вагітна, і якщо ми її розводимо ще раз, вона не може бути попередньою кілька разів)
get
: -просто отримати. Отримайте дані з сервера та покажіть їх користувачеві
{
id:1
name:parth
email:x@x.com
}
post
: -створити новий ресурс у базі даних. Це означає, що додає нові дані. Це не безсило.
put
: -Створіть новий ресурс інакше додайте до існуючого. Idempotent, оскільки він оновлюватиме один і той же ресурс кожного разу, а вихід буде однаковим. колишній - вихідні дані
{
id:1
name:parth
email:x@x.com
}
{
id:1
email:ppp@ppp.com
}
patch
тому тепер прийшов патч-запит PATCH може бути іноді безсильним
id:1
name:parth
email:x@x.com
}
назва пластиру: w
{
id:1
name:w
email:x@x.com
}
Метод HTTP Отримайте так POST № ПУТ так ПАТЧ ні * ВАРІАНТИ так ГОЛОВА так ВИДАЛИТИ так
Ресурси: Idempotent - що таке Idempotency?
Основна різниця між запитами PUT та PATCH :
Припустимо, у нас є ресурс, який містить ім’я та прізвище людини.
Якщо ми хочемо змінити ім’я, то ми надсилаємо запит на оновлення
{ "first": "Michael", "last": "Angelo" }
Тут, хоча ми змінюємо лише ім’я, з PUT-запитом ми повинні надсилати обидва параметри першими та останніми.
Іншими словами, обов'язково потрібно знову надіслати всі значення, повне корисне навантаження.
Однак, коли ми надсилаємо запит PATCH, ми надсилаємо лише ті дані, які ми хочемо оновити. Іншими словами, ми посилаємо лише оновлення для оновлення, не потрібно надсилати прізвище.
Цілком логічна різниця між PUT & PATCH wrt, що надсилає повні та часткові дані для заміни / оновлення відповідно. Однак лише кілька пунктів, як показано нижче
Подумайте про це так ...
POST - створити
ПУТ - замінити
PATCH - оновлення
GET - читати
ВИДАЛИТИ - видалити
Найпростіше пояснення:
POST - Створення НОВОГО запису
PUT - Якщо запис існує, оновіть інше, створіть новий запис
PATCH - оновлення
GET - читати
ВИДАЛИТИ - видалити