← головнаПрограмування

Чим відрізняється PUT від PATCH?

PUT і PATCH - це два HTTP-методи, які використовуються для оновлення ресурсів на сервері у контексті RESTful веб-служб. Основна різниця між ними полягає в тому, як вони взаємодіють з існуючими ресурсами. PUT (Заміна о...

ЗмістНатисність на посилання, щоб перейти до потрібного місця
PUT і PATCH - це два HTTP-методи, які використовуються для оновлення ресурсів на сервері у контексті RESTful веб-служб. Основна різниця між ними полягає в тому, як вони взаємодіють з існуючими ресурсами.

PUT (Заміна об'єкту)

Запит PUT вказує на те, що клієнт відправляє нове представлення ресурсу, яке повинно повністю замінити поточний стан ресурсу або створити новий, якщо його не існує. Іншими словами, весь ресурс повинен бути замінений новим.
Ruby on Rails приклад:
# Контролер
def update
  @user = User.find(params[:id])
  if @user.update(user_params)
    render json: @user
  else
    render json: @user.errors, status: :unprocessable_entity
  end
end
У цьому прикладі, update використовується з PUT-запитом, і @user.update(user_params) замінює всі атрибути користувача новими значеннями, які надходять з клієнта. Мається на увазі те що user_params - містять всі параметри об'єкту (моделі).

PATCH (часткове оновлення)

Запит PATCH вказує, що клієнт відправляє часткове оновлення ресурсу, тобто тільки ті дані, які потрібно змінити, без необхідності відправляти всю інформацію про ресурс. Це зручно, коли клієнт хоче оновити лише певні поля ресурсу. Наприклад - тільки одну секцію форми інформації про себе на сайті.
Ruby on Rails приклад:
# Контролер
def update
  @user = User.find(params[:id])
  if @user.update(user_partial_params)
    render json: @user
  else
    render json: @user.errors, status: :unprocessable_entity
  end
end
Тут @user.update(user_partial_params) використовується для часткового оновлення користувача за допомогою PATCH-запиту, де user_partial_params містить лише ті поля, які потрібно оновити.
Узагальнюючи, PUT використовується для повного оновлення ресурсу, тоді як PATCH використовується для часткового оновлення, дозволяючи зберігати інші частини ресурсу незмінними.
Ruby on Rails доволі розумний фреймворк і він сам визначає який запит йому потрібно робити. Це дозволяє автоматизувати і впростити логіку контролера і робить код більш чистим та зрозумілим.
Тобто технічно виклик @user.update(user_params) (який ми розгядали до цього як PUT) може бути PATCH а не PUT, через те що форма на фронтенді має не всі поля об'єкту. 

🔥 Більше дописів

Всі публікації
Програмування23 груд. '23, 11:29

Що таке cookies?

Cookies - це дані, які веб-сайти зберігають на комп'ютері, телефоні або іншому пристрої користува...

Програмування23 груд. '23, 11:40

Що таке сесія? (Web)

У контексті вебу термін сесія зазвичай використовується для опису з'єднання між користувачем і ве...

Програмування24 груд. '23, 12:08

Що таке SQL Injection?

SQL Injection (SQLI) - це тип атаки на веб-додатки, під час якої зловмисник вставляє SQL-код у вх...

Що таке DOM?
Програмування24 груд. '23, 12:22

Що таке DOM?

DOM (Document Object Model / Модель об'єктів документа) це програмний інтерфейс для представлення...

Програмування24 груд. '23, 12:23

Що таке Cross-Site Scripting (XSS)?

Cross-Site Scripting (XSS) - це тип атаки на безпеку веб-додатків, при якій зловмисник впроваджує...