В чем разница между методами PUT, POST и PATCH в протоколе HTTP?
В чем разница между методами PUT, POST и PATCH в протоколе HTTP?
Ответы:
Разница между командами PUT, POST, GET, DELETE и PATCH IN 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, как показано ниже, и нажмите «Выполнить», чтобы проверить ответ.
Глагол: ПОЛУЧИТЬ
URL: http://jsonplaceholder.typicode.com/posts/
Ответ: Вы получите ответ как:
"userId": 1, "id": 1, "title": "sunt aut ...", "body": "quia et suscipit ..."
В «счастливом» (или не ошибочном) пути GET возвращает представление в XML или JSON и код ответа HTTP 200 (ОК). В случае ошибки чаще всего возвращается 404 (НЕ НАЙДЕНО) или 400 (ПЛОХОЙ ЗАПРОС).
2) ПОЧТА:
Глагол POST в основном используется для создания новых ресурсов. В частности, он используется для создания подчиненных ресурсов. То есть подчиняться какому-то другому (например, родительскому) ресурсу.
В случае успешного создания верните HTTP-статус 201, вернув заголовок Location со ссылкой на вновь созданный ресурс с HTTP-статусом 201.
Проверка с помощью Fiddler или PostMan: мы можем использовать Fiddler для проверки ответа. Откройте Fiddler и выберите вкладку Compose. Укажите глагол и URL, как показано ниже, и нажмите «Выполнить», чтобы проверить ответ.
Глагол: ПОЧТА
URL: http://jsonplaceholder.typicode.com/posts/
Тело запроса:
данные: {title: 'foo', body: 'bar', userId: 1000, Id: 1000}
Ответ: Вы получите код ответа как 201.
Если мы хотим проверить вставленную запись с Id = 1000, измените глагол на Get и используйте тот же URL и нажмите Execute.
Как было сказано ранее, приведенный выше URL разрешает только чтение (GET), мы не можем читать обновленные данные в реальном времени.
3) PUT:
PUT чаще всего используется для возможностей обновления , PUT - для известного URI ресурса с телом запроса, содержащим недавно обновленное представление исходного ресурса.
Проверка с помощью Fiddler или PostMan: мы можем использовать Fiddler для проверки ответа. Откройте Fiddler и выберите вкладку Compose. Укажите глагол и URL, как показано ниже, и нажмите «Выполнить», чтобы проверить ответ.
Глагол: PUT
URL: http://jsonplaceholder.typicode.com/posts/1
Тело запроса:
данные: {title: 'foo', body: 'bar', userId: 1, Id: 1}
Ответ: При успешном обновлении он возвращает 200 (или 204, если не возвращает никакого содержимого в теле) из PUT.
4) УДАЛИТЬ:
УДАЛИТЬ довольно легко понять. Он используется для удаления ресурса, идентифицированного URI.
При успешном удалении верните HTTP-статус 200 (ОК) вместе с телом ответа, возможно, представлением удаленного элемента (часто требует слишком большой полосы пропускания) или обернутого ответа (см. «Возвращаемые значения» ниже). Либо так, либо возвращаем HTTP-статус 204 (НЕТ КОНТЕНТА) без тела ответа. Другими словами, статус 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"} Итак, здесь, чтобы обновить имя, нам нужно снова отправить все параметры данных.
PATCH:
Запрос на исправление говорит о том, что мы будем отправлять только те данные, которые нам нужно изменить, без изменения или воздействия на другие части данных. Пример: если нам нужно обновить только имя, мы передаем только имя.
Пожалуйста, обратитесь к ссылкам ниже для получения дополнительной информации:
https://jsonplaceholder.typicode.com/
https://github.com/typicode/jsonplaceholder#how-to
PUT = заменить ВЕСЬ РЕСУРС новым предоставленным представлением
PATCH = заменить части исходного ресурса указанными значениями И | ИЛИ, другие части ресурса обновляются, которые вы не предоставили (временные метки) И | ИЛИ обновление ресурса влияет на другие ресурсы (отношения)
Приведенное ниже определение взято из примера из реального мира.
Обзор примера
Для каждого клиента мы храним идентификатор, чтобы найти эти данные клиента, и мы отправим этот идентификатор клиенту для справки.
ПОЧТА
СТАВИТЬ
PATCH
Примечание. В методе Put мы не генерируем исключение, если идентификатор не найден. Но в методе Patch мы генерируем исключение, если идентификатор не найден.
Дайте мне знать, если у вас есть какие-либо вопросы по вышеуказанному.
GET / PUT - идемпотентный патч иногда может быть идемпотентным
То, что является идемпотентом - это означает, что если мы запускаем запрос несколько раз, это не должно влиять на его результат (тот же результат. Предположим, что корова беременна, и если мы разводим ее снова, то она не может быть беременна несколько раз).
get
: -просто получить. Получить данные с сервера и показать их пользователю
{
id:1
name:parth
email:x@x.com
}
post
: -создать новый ресурс в базе данных. Это означает, что он добавляет новые данные. Это не идемпотент.
put
: -Создать новый ресурс, иначе добавить в существующий. Идемпотент, потому что он будет обновлять один и тот же ресурс каждый раз, а результат будет одинаковым. ех. - исходные данные
{
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 метод ПОЛУЧИТЬ да ПОСТ № ПОСТАВИТЬ да Патч нет * ВАРИАНТЫ да ГОЛОВА да УДАЛИТЬ да
Ресурсы: Идемпотент - Что такое Идемпотентность?
Основное различие между запросами PUT и PATCH :
Предположим, у нас есть ресурс, который содержит имя и фамилию человека.
Если мы хотим изменить имя, мы отправим запрос на обновление
{ "first": "Michael", "last": "Angelo" }
Здесь, хотя мы меняем только имя, с запросом PUT мы должны отправить оба параметра первым и последним.
Другими словами, обязательно отправлять все значения снова, всю полезную нагрузку.
Однако, когда мы отправляем запрос PATCH, мы отправляем только те данные, которые хотим обновить. Другими словами, мы отправляем только имя для обновления, не нужно отправлять фамилию.
Вполне логичная разница между PUT и PATCH при отправке полных и частичных данных для замены / обновления соответственно. Тем не менее, только пара пунктов, как показано ниже
Подумай об этом так ...
POST - создать
PUT - заменить
PATCH - обновление
Читается
УДАЛИТЬ - удалить
Самое простое объяснение:
POST - Создать новую запись
PUT - если запись существует, обновите еще, создайте новую запись
PATCH - обновление
Читается
УДАЛИТЬ - удалить