Я видел, что laravel использует Route::resource для генерации маршрутов для restful-архитектуры, и обновления в нем используют запросы patch, в то время как в некоторых местах говорится, что они используют put, поэтому я посмотрел, и это очень ясно, поэтому я скопировал это сюда
метод put обновляет все ресурсы метод patch используется для обновления локальных ресурсов
Предположим, у нас есть UserInfo, который имеет 10 полей, таких как userId, userName, userGender и т.д. Но ваша функция редактирования не так хороша, как должна быть. Но ваша функция редактирования может изменить только userName на специальной странице из-за требования, как сделать обновление в это время?
Обычно люди передают полный объект userInfo, содержащий измененное имя пользователя, в бэкенд, чтобы выполнить полное обновление. Но если подумать, то такой подход кажется немного двумерным, и настоящей тратой пропускной способности (технически говоря, вам плевать на пропускную способность, вы же магнат).
Так появился патч, передающий только имя пользователя указанному ресурсу, чтобы указать, что запрос является частичным обновлением, а бэкэнд обновляет только полученное поле.
Хотя put также обновляет ресурсы, но требования front-end должны быть полными объектами ресурсов, теория заключается в том, что если вы используете put, но не предоставляете полный UserInfo, то недостающие поля должны быть очищены!
PUT: Используется для создания ресурса, URL которого известен, или для полной замены известного ресурса. Обычно используется для обновления известного ресурса, если только URL создаваемого объекта не известен до его создания.
POST: используется для создания дочернего ресурса, не является идемпотентным, многократное выполнение приведет к созданию нескольких идентичных ресурсов. (Идемпотентная: идемпотентная операция в программировании характеризуется тем, что любое количество ее выполнений имеет тот же эффект, что и одно выполнение ).
PATCH: является дополнением к методу PUT и используется для выполнения локальных обновлений известных ресурсов. |