[API] Phân biệt giữa PUT và PATCH: Có phải cùng là UPDATE không?

Khi bắt đầu học và làm quen với các khái niệm của API, chắc hẳn các bạn đã rất quen thuộc với các methods được giới thiệu RESTful APIs enable you to develop any kind of web application having all possible CRUD (create, retrieve, update, delete) operations – https://restfulapi.net RESTfull có những cơ bản sau:

Khi bắt đầu học và làm quen với các khái niệm của API, chắc hẳn các bạn đã rất quen thuộc với các methods được giới thiệu

RESTful APIs enable you to develop any kind of web application having all possible CRUD (create, retrieve, update, delete) operations – https://restfulapi.net

RESTfull có những cơ bản sau:

Method Semantics
POST Create
GET Read/Retrieve
PUT/PATCH Update
DELETE Delete
——– ——–

ỦA 🙄 Hình như cả PUT và PATCH đều là UPDATE? Vậy thì nó giống nhau hay khác nhau? 🤔

Đây cũng câu hỏi phỏng vấn phổ biến để hỏi ứng viên về bản chất của kiến thức của API. Chúng ta cùng làm rõ nó để khỏi bị lừa nhé 😈

What is PUT?

PUT là phương thức để chỉnh sửa resource khi Client gửi data và muốn update toàn bộ resource đó. PUT cũng có thể giống như POST – tạo ra một resource mới nếu như nó không tồn tại.
Nôm na đó là, khi sử dụng PUT để Update chúng ta phải tạo ra một bản ghi đầy đủ các field để yêu cầu cập nhật và nó sẽ thực hiện ghi đè nên các field đã tồn tại.

Ví dụ, mình có một record như sau:

Method: GET

Bây giờ, chúng ta sử dụng method PUT để update “doors” = 5

*Method: PUT *

Sau đó chúng ta cùng xem thông tin đã được cập nhật như thế nào r nhé.

Method: GET

Như vậy, “door” đã được cập nhật bằng 5 nhưng lại mất những fields khác vì trong request của method PUT đã không chứa đầy đủ tất cả các fields.

Chú ý rằng, nếu như ban đầu chúng ta không có sẵn resource mà sử dụng method PUT. Nó sẽ thực hiện chức năng như POST để tạo mới một resource.

What is PATCH?

Cũng giống như PUT, PATCH được dùng để thay đổi data thế nhưng nó chỉ thay đổi những field được yêu cầu thay đổi thay vì toàn bộ resource

Lấy tiếp tục ví trên, nếu chúng ta sử dụng method PATH thì sẽ như sau:

Method: PATCH

Sau đó, xem kết quả:

Method: GET

Chúng ta có thể thấy rằng, “door” đã update bằng 5 nhưng không bị mất các trường khác. Hơn nữa, chúng ta cũng có thể thêm một field mà không tồn tại:

Chú ý rằng, bạn không thể dùng method PATCH cho một resource không tồn tại như PUT (Kết quả sẽ trả về FAIL và không có resource mới được tạo ra)

Các bạn đã phân biệt được chưa 😎

Nguồn: viblo.asia

Bài viết liên quan

Tấn Công Ứng Dụng Web: Mối Đe Dọa Hàng Đầu – Phần 2

viết lại nội dung này ” Phát hiện các cuộc tấn công Cross Site Scripting (XSS)

AI Chatbot 2025: Xu Hướng Tất Yếu Cho Doanh Nghiệp Dẫn Đầu

Giới thiệu AI chatbots đã trải qua một hành trình đáng kể, từ những công cụ t

Tấn Công Ứng Dụng Web: Mối Đe Dọa Hàng Đầu – Phần 1

Tấn công web là gì? Ứng dụng web là các ứng dụng cung cấp dịch vụ cho người

SEO Mũ Trắng, Mũ Đen, Mũ Xám: Hiểu Biết và Lựa Chọn Phù Hợp

SEO Mũ Trắng, Mũ Đen, Mũ Xám: Hiểu Biết và Lựa Chọn Phù Hợp Trong kỷ nguyên s