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

REST - не должен PUT = Создать и POST = Обновить

Не следует использовать PUT для Create и POST для Update, так как PUT isempotent.

Таким образом, множественные PUT для одного и того же ордера будут размещать только один заказ?

4b9b3361

Ответ 1

Фундаментальная разница заключается в том, что PUT предназначен для известного ресурса и поэтому используется для обновления как указано здесь в rfc2616.

Основное различие между запросами POST и PUT отражаются в различном значении Request-URI. URI в Запрос POST идентифицирует ресурс, который будет обрабатывать прилагаемые организация. Этот ресурс может быть процессом принятия данных, шлюзом к другой протокол или отдельный объект, который принимает аннотации. В контраст, URI в запросе PUT идентифицирует объект, заключенный с запрос - пользовательский агент знает, что такое URI, и сервер НЕ ДОЛЖЕН пытаться применить запрос к другому ресурсу. Если сервер желает, чтобы запрос был применен к другому URI

Я вижу, откуда вы пришли, основываясь на самих именах.

Я обычно смотрю на POST, так как это должен быть URI, который будет обрабатывать содержимое моего запроса (в большинстве случаев параметры как значения формы) и тем самым создавать новый ресурс, а PUT - как URI, который является предметом моего request (/users/1234), ресурс, который уже существует.

Я считаю, что номенклатура восходит к длинным путям, рассмотрим раннюю паутину. Возможно, потребуется POST их сообщение на доске объявлений, а затем PUT дополнительный контент в свое сообщение позже.

Ответ 2

PUT следует использовать для создания, если и только если URI нового ресурса известен клиенту. Новый URI может быть рекламирован службой в представлении ресурсов. Например, служба может предоставить какую-либо форму отправки и указать на ней URI действия, который может быть предварительно заполненным URI нового ресурса. В этом случае да, если исходный запрос PUT успешно создает ресурс, следующий запрос PUT только заменит его.

Хорошо использовать POST для обновлений, никогда не говорилось, что POST предназначен только для "создания".

Ответ 3

Нет строгого соответствия между HTTP-методами и CRUD. Это соглашение, принятое некоторыми структурами, но оно не имеет ничего общего с ограничениями REST.

A PUT запрашивает сервер, чтобы заменить все, что есть в данном URI, с закрытым представлением, полностью игнорируя текущее содержимое. Хорошей аналогией является команда mv в оболочке. Он создает новый файл в пункте назначения, если он не существует, или заменяет все существующее. В любом случае он полностью игнорирует все, что там есть. Вы можете использовать это для создания, но также и для обновления, если вы отправляете полное представление.

POST запрашивает целевой ресурс для обработки полезной нагрузки в соответствии с предопределенными правилами, поэтому метод должен использоваться для любой операции, которая еще не стандартизована протоколом HTTP. Это означает, что POST может делать все, что угодно, если вы не дублируете функциональные возможности другого метода - например, используя POST для извлечения, когда вы должны использовать GET - и вы правильно документируете его.

Таким образом, вы можете использовать как для создания, так и для обновления, в зависимости от конкретных обстоятельств, но с PUT у вас должна быть последовательная семантика для всего в вашем API, и вы не можете делать частичные обновления, а с помощью POST вы может делать все, что угодно, пока вы документируете, как именно это работает.

Ответ 4

Это зависит. вы можете создавать/обновлять сайты/записи с обоими. Когда клиент указывает URI, тогда PUT - это путь. например Любой редактор кода, такой как Dreamweaver, PUT - это правильный протокол для использования.

также посмотрите на эту тему: put vs post in rest