Diwas Poudel Ответов: 3

Обновить и вставить с помощью POST и PUT http глагола?


Что произойдет, если я обновлю базу данных с помощью POST HTTP Verb?
Что произойдет, если я обновлю базу данных с помощью PUT HTTP Verb ?
Также
Что произойдет, если вставить в БД с помощью POST HTTP глагола ?
Кроме того, что произойдет, если вставить в БД с помощью PUT HTTP глагола?

Что я уже пробовал:

Post vs PUT в случае обновления и вставки

Bryian Tan

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

3 Ответов

Рейтинг:
25

Afzaal Ahmad Zeeshan

Как уже ясно упоминали другие, речь идет не о вашем приложении, а о протоколе. Если вы,

Цитата:
обновлениеИнг база данных с использованием POST HTTP глагола?
Вы нарушаете протокол HTTP и определения для этих глаголов. То же самое относится и к другим случаям в вашем вопросе. В правильно определенном HTTP API вы используете глаголы в качестве действий над ресурсами, которые являются URL-адресами. Прочитать следующее,
GET    /people
POST   /people/ request=body;stripped=intentionally
PUT    /people/5
DELETE /people/10
Можете ли вы прочитать, что будут делать вышеупомянутые конечные точки? Что произойдет, если вы отправите запрос в /people/10 с DELETE как глагол? Можете ли вы применить политику включения только для чтения GET если, если, если ваш код делает удаление в фоновом режиме?

Это также касается не только вас, но и пользователей... Речь идет о том, как ваши пользователи потребляют API. Так же, как и вы, ваши пользователи также будут читать API и понимать, что он делает и как они могут выполнять действие.

Существует несколько инструментов, которые позволяют вашей аудитории потреблять ваши API, некоторые из этих инструментов являются интеллектуальными и понимают, что такое поведение, и могут позволить им принимать решения и генерировать тестовый рабочий процесс. В этих случаях правильный глагол поможет каждой вовлеченной стороне—вам, разработчику, самому инструменту. Если у вас есть другое мышление и другой подход к разработке API, вам это разрешено, но это означает, что вы можете использовать API. вам нужно заставить своих пользователей чтобы использовать API аналогичным образом.

О Форс Спецификация | Документация | Чванство | Чванство[^]
Среда разработки Postman | API[^]

Например, я могу разрешить своим пользователям создавать новую учетную запись с помощью DELETE запросите, и я могу позволить им обновить свои профили с помощью GET запрос. Тебе это нравится?
Afzaal Зишан Ахмед :
Правильный глагол для правильной задачи-это то, что вам нужно реализовать в вашем API!
Забудьте о свободе, о которой вам говорят другие,—это всего лишь фасад, и в конечном счете это причинит вам боль. Извините за бесстыдную атрибуцию. :смеяться:

И последнее, но не менее важное: HTTP-методы должны следовать стандарту, например идемпотентность, методы только для чтения, безопасные методы и т. д. Читайте здесь более подробно об этом, Что такое идемпотентность в HTTP-методах? - переполнение стека[^].


[no name]

Таким образом, нет побочного эффекта использования POST с обновлением ресурса ? Если таковые имеются, пожалуйста, объясните..

Afzaal Ahmad Zeeshan

Я объяснил побочные эффекты в ответе. Пожалуйста, еще раз перечитайте 4-й и 5-й абзацы моего ответа.

[no name]

Если и POST, и PUT делают одно и то же, то почему REST API Originator использует эти два имени.

Afzaal Ahmad Zeeshan

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

Рейтинг:
0

MadMyche

Вот быстрый ответ на эти вопросы:

ПОСТ и КЛАСТЬ это просто HTML-методы, которые подаются в ваше веб-приложение. То, что ваше приложение делает с ними и как оно взаимодействует с базой данных, будет зависеть от программирования внутри нее.

Классическое определение REST метода POST заключается в создании нового ресурса. В базе данных это было бы аналогично вставке. Многие из этих систем вернут новый URI, в котором был создан ресурс.

Определение поставить ставится ресурса по указанному URI. Если ресурс уже существует, это будет равносильно инструкции UPDATE; если нет, то инструкции INSERT. Возврат URI, указанного в запросе, не требуется.

Так что во всей реальности, это зависит от API о том, как обрабатывать POST vs PUT.

Для более глубокого представления о том, когда и что использовать:
Когда использовать PUT или POST - The RESTful cookbook[^]