Подтвердить что ты не робот

В чем разница между PUT, POST и PATCH?

В чем разница между методами PUT, POST и PATCH в протоколе HTTP?

4b9b3361

Ответ 1

СООБЩЕНИЕ

HTTP.POST можно использовать, когда клиент отправляет данные на сервер, а сервер определяет URI для вновь созданного ресурса. Метод POST используется для запроса, чтобы исходный сервер принял объект, включенный в запрос, в качестве нового подчиненного ресурса, идентифицируемого Request-URI в строке запроса.

ПОЛОЖИЛ

HTTP.PUT может использоваться, когда клиент отправляет данные на сервер, и клиент определяет URI для вновь созданного ресурса. Метод PUT запрашивает, чтобы вложенный объект был сохранен под предоставленным Request-URI. Если Request-URI ссылается на уже существующий ресурс, вложенный объект СЛЕДУЕТ рассматривать как модифицированную версию, находящуюся на исходном сервере. Если Request-URI не указывает на существующий ресурс, и этот URI может быть определен как новый ресурс запрашивающим пользовательским агентом, сервер-источник может создать ресурс с этим URI.

PATCH

HTTP.PATCH может использоваться, когда клиент отправляет одно или несколько изменений, которые будут применены сервером. Метод PATCH запрашивает, чтобы набор изменений, описанный в объекте запроса, был применен к ресурсу, идентифицированному Request-URI. Набор изменений представлен в формате, называемом патч-документ.

Для получения дополнительной информации обратитесь к указанному ниже URL

ПОСТ против ПОЧТЫ в ОТДЫХЕ

Ответ 2

Разница между командами PUT, POST, GET, DELETE и PATCH IN HTTP:

Наиболее часто используемые HTTP-глаголы POST, GET, PUT, DELETE аналогичны операциям CRUD (создание, чтение, обновление и удаление) в базе данных. Мы указываем эти глаголы HTTP в случае заглавных. Итак, ниже приведено сравнение между ними.

  1. создать - POST
  2. читать - ПОЛУЧИТЬ
  3. обновление - PUT
  4. удалить - УДАЛИТЬ

PATCH: Представляет частичную модификацию ресурса. Если вам нужно обновить только одно поле для ресурса, вы можете использовать метод PATCH.

Примечание:
Поскольку POST, PUT, DELETE изменяют содержимое, тесты с Fiddler для приведенного ниже URL-адреса просто имитируют обновления. Это не удаляет или изменяет на самом деле. Мы можем просто увидеть коды состояния, чтобы проверить, происходят ли вставки, обновления, удаления.

URL: http://jsonplaceholder.typicode.com/posts/

1) GET:

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:

Глагол POST в основном используется для создания новых ресурсов. В частности, он используется для создания подчиненных ресурсов. То есть подчиняться какому-либо другому (например, родительскому) ресурсу.

При успешном создании верните HTTP-статус 201, вернув заголовок Location со ссылкой на вновь созданный ресурс с HTTP-статусом 201.

Проверка с помощью Fiddler или PostMan: Мы можем использовать Fiddler для проверки ответа. Откройте Fiddler и выберите вкладку Compose. Укажите глагол и URL, как показано ниже, и нажмите "Выполнить", чтобы проверить ответ.

Глагол: POST

URL: http://jsonplaceholder.typicode.com/posts/

Тело запроса:

данные: {   title: 'foo',   тело: "бар",   ИД пользователя: 1000,   Id: 1000 }

Ответ: Вы получите код ответа 201.

Если мы хотим проверить вставленную запись с Id = 1000, измените глагол на Получить и используйте тот же URL-адрес и нажмите Выполнить.

Как было сказано ранее, приведенный выше URL разрешает только чтение (GET), мы не можем читать обновленные данные в режиме реального времени.

3) PUT:

PUT чаще всего используется для обновления возможностей, PUT - для известного URI ресурса с телом запроса, содержащим недавно обновленное представление исходного ресурса.

Проверка с помощью Fiddler или PostMan: Мы можем использовать Fiddler для проверки ответа. Откройте Fiddler и выберите вкладку Compose. Укажите глагол и URL, как показано ниже, и нажмите "Выполнить", чтобы проверить ответ.

Глагол: PUT

URL: http://jsonplaceholder.typicode.com/posts/1

Тело запроса:

данные: {   title: 'foo',   тело: "бар",   ИД пользователя: 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

Если мне пришлось изменить свое имя, отправьте запрос PUT на обновление:

{"first": "Nazmul", "last": "hasan"} Итак, здесь, чтобы обновить имя, нам нужно снова отправить все параметры данных.

PATCH:

Запрос на исправление говорит о том, что мы будем отправлять только те данные, которые нам нужно изменить, без изменения или воздействия на другие части данных. Пример: если нам нужно обновить только имя, мы передаем только имя.

Пожалуйста, обратитесь к ссылкам ниже для получения дополнительной информации:

https://jsonplaceholder.typicode.com/

https://github.com/typicode/jsonplaceholder#how-to

В чем основное различие между запросами PATCH и PUT?

http://www.restapitutorial.com/lessons/httpmethods.html

Ответ 3

PUT = заменить ПОЛНЫЙ РЕСУРС новым представлением

PATCH = заменить части исходного ресурса на значения, предоставленные И | ИЛИ другие части ресурса обновлены, которые вы предоставили (временные метки) И | ИЛИ обновили ресурсные эффекты другими ресурсами (отношениями)

https://laracasts.com/discuss/channels/general-discussion/whats-the-differences-between-put-and-patch?page=1

Ответ 4

Типы запросов

  • создать - POST
  • читать - ПОЛУЧИТЬ
  • создать или обновить - PUT
  • удалить - УДАЛИТЬ
  • обновление - PATCH

GET/PUT является идемпотентом Патч может быть иногда идемпотентным

Что такое идемпотент - Это означает, что если мы запустим запрос несколько раз, это не должно повлиять на его результат (тот же результат. Предположим, что корова беременна, и если мы разводим ее снова, то она не может быть беременна несколько раз)

get: -

просто получить. Получить данные с сервера и показать их пользователю

{
id:1
name:parth
email:[email protected]
}

post: -

создать новый ресурс в базе данных. Это означает, что он добавляет новые данные. Это не идемпотент.

put: -

Создать новый ресурс, иначе добавить к существующему. Идемпотент, потому что он будет обновлять один и тот же ресурс каждый раз, и результат будет одинаковым. отл. - исходные данные

{
id:1
name:parth
email:[email protected]
}
  • выполнить put-localhost/1 укажите адрес электронной почты: [email protected]
{
id:1
email:[email protected]
}

patch

так что теперь пришел запрос патча Патч может быть иногда идемпотентным

id:1
name:parth
email:[email protected]
}

название патча: w

{
id:1
name:w
email:[email protected]
}
HTTP  Method
GET     yes
POST    no
PUT     yes
PATCH   no*
OPTIONS yes
HEAD    yes
DELETE  yes

Ресурсы: Идемпотент - Что такое идемпотентность?

Ответ 5

Приведенное ниже определение взято из примера из реального мира.

Примерный обзор
Для каждой клиентской информации мы храним идентификатор, чтобы найти эти клиентские данные, и мы отправим этот идентификатор клиенту для справки.

  1. СООБЩЕНИЕ

    • Если Клиент отправляет данные без идентификатора с использованием метода POST, мы сохраняем их и назначаем новый идентификатор.
    • Если Клиент снова отправляет те же данные без идентификатора с помощью метода POST, мы сохраняем их и назначаем новый идентификатор.
    • Примечание: дублирование разрешено здесь
  2. ПОЛОЖИЛ

    • Если Клиент отправляет данные с идентификатором, мы проверим, существует ли этот идентификатор. Если идентификатор существует, мы обновим данные, в противном случае мы создадим его и назначим новый идентификатор.
  3. PATCH

    • Если Клиент отправляет данные с идентификатором, мы проверим, существует ли этот идентификатор. Если идентификатор существует, мы обновим данные, иначе мы сгенерируем исключение.

Примечание. В методе Put мы не генерируем исключение, если идентификатор не найден. Но в методе Patch мы генерируем исключение, если идентификатор не найден.

Дайте мне знать, если у вас есть какие-либо вопросы по вышеуказанному.

Ответ 6

Основная разница между запросами PUT и PATCH :

Предположим, у нас есть ресурс, который содержит имя и фамилию человека.

Если мы хотим изменить имя, отправляем запрос на обновление для обновления

{ "first": "Michael", "last": "Angelo" }

Здесь, хотя мы меняем только имя, с помощью запроса PUT мы должны отправить оба параметра: первый и последний.
Другими словами, необходимо отправить все значения снова, всю полезную нагрузку.

Однако, когда мы отправляем запрос PATCH, мы отправляем только те данные, которые хотим обновить. Другими словами, мы отправляем только имя для обновления, не нужно отправлять фамилию.

Ответ 7

Приведенное ниже определение из реального примера 1.POST: для каждого клиента мы сохраняем идентификатор, чтобы найти эти данные клиента.

Ответ 8

Вот разница между методами POST, PUT и PATCH протокола HTTP.

POST

Метод HTTP.POST всегда создает новый ресурс на сервере. Его не-идемпотентный запрос, т.е. Если пользователь обращается к тем же запросам 2 раза, он создаст новый новый ресурс, если нет ограничений.

http post method is like a INSERT query in SQL which always creates a new record in database.

Пример. Используйте метод POST для сохранения нового пользователя, заказа и т.д., когда серверный сервер решает идентификатор ресурса для нового ресурса.

PUT

В методе HTTP.PUT ресурс сначала идентифицируется из URL-адреса, и если он существует, то он обновляется, иначе создается новый ресурс. Когда целевой ресурс существует, он перезаписывает этот ресурс с полным новым телом. Это метод HTTP.PUT используется для СОЗДАНИЯ или ОБНОВЛЕНИЯ ресурса.

http put method is like a MERGE query in SQL which inserts or updates a record depending upon whether the given record exists.

Запрос PUT является idempotent, т.е. удары одних и тех же запросов дважды будут обновлять существующую запись (новая запись не создается). В методе PUT идентификатор ресурса определяется клиентом и указан в URL-адресе запроса.

Пример. Используйте метод PUT для обновления существующего пользователя или заказа.

PATCH

Метод HTTP.PATCH используется для частичных модификаций обновления ресурса, то есть дельта-обновления.

http patch method is like a UPDATE query in SQL which sets or updates selected columns only and not the whole row.

Пример. Вы можете использовать метод PATCH для обновления состояния заказа.

PATCH/api/users/40450236/order/10234557

Тело запроса: {status: 'Delivered'}