PUT hay PATCH: Làm rõ sự khác biệt

Khi xây dựng API RESTful, việc cập nhật các tài nguyên hiện có là một điều phổ biến mà ai cũng thường làm. Hai phương thức HTTP thường được sử dụng cho mục đích này bao gồm PUT và PATCH. Mặc dù cả hai đều được sử dụng để sửa đổi dữ liệu, nhưng chúng phục vụ các chức năng riêng biệt mà không phải ai cũng nắm rõ.

1. Định nghĩa của PUT

Yêu cầu PUT được sử dụng để cập nhật hoặc tạo tài nguyên trên máy chủ. Hãy nghĩ đơn giản như việc thay thế toàn bộ một thứ bằng một phiên bản mới hơn của nó. Yêu cầu bao gồm toàn bộ representation của tài nguyên và máy chủ hiện có phải được thay thế bằng tài nguyên được cung cấp trong yêu cầu.

2. Tính bất biến và tính an toàn của PUT

  • Idempotent : Yêu cầu PUT là idempotent, nghĩa là bạn có thể gửi nhiều lần và nó sẽ có hiệu ứng giống như gửi một lần. Ví dụ, nếu bạn cập nhật hồ sơ người dùng với cùng thông tin hai lần, kết quả sẽ giống như cập nhật một lần.
  • An toàn : Yêu cầu PUT không được coi là an toàn. Nó sửa đổi dữ liệu trên máy chủ, do đó có khả năng gây ra tác dụng phụ.

3. Các trường hợp sử dụng cho PUT

  • Tạo tài nguyên : Nếu tài nguyên không tồn tại, yêu cầu PUT có thể tạo tài nguyên đó.
  • Thay thế toàn bộ tài nguyên : Nếu tài nguyên đã tồn tại, yêu cầu PUT sẽ thay thế tài nguyên đó bằng biểu diễn mới được gửi trong nội dung yêu cầu.