- vừa được xem lúc

[API Testing] Phân biệt PUT và PATCH - Chưa chắc đã giống đâu

0 0 10

Người đăng: Minh Thu Tran

Theo Viblo Asia

Hai phương thức PUT và PATCH là hai phương thức HTTP được sử dụng để cập nhật tài nguyên trên máy chủ web.

Lời đầu tiên mình xin chào mọi người, chúc mọi người có một ngày học tập và làm việc vui vẻ. Bài viết này mình sẽ đề cập đến sự khác nhau giữa PUT và PATCH. Mình cùng vào nội dung chính nhé !

1. PUT

  • PUT (Replace): Phương thức PUT được sử dụng để thay thế hoàn toàn nội dung của tài nguyên bằng nội dung mới
  • Nếu tài nguyên đã tồn tại, PUT sẽ gửi yêu cầu cập nhật nội dung mới hoàn toàn. Nếu tài nguyên chưa tồn tại, PUT sẽ tạo tài nguyên mới với nội dung mới.
  • Điều quan trọng cần lưu ý là khi sử dụng PUT, bạn cần gửi toàn bộ nội dung của tài nguyên, không chỉ gửi các trường cần thay đổi.

Ví dụ: Mình sử dụng phương thức GET để lấy ra record như sau:

Request: GET/monhoc/stt=2 (Đây là mình viết ví dụ câu request thôi đó nha ^-^)

Response:

{ "subject": "Lập trình cơ bản", "lecturer": "Nguyễn Văn A", "credits": 4
}

Sau đó mình sử dụng phương thức PUT để bổ sung thêm tên giảng viên

Request: PUT/monhoc/stt=2

Response:

"lecturer": "Nguyễn Văn A, Trần Thị B"

Sau đó mình sử dụng phương thức GET để kiểm tra lại record

Và kết quả là:

"lecturer": "Nguyễn Văn A, Trần Thị B"

👉️Hình như mất tiu subject với credit rồi, có chuyên gì xảy ra vậy

Nhớ lưu ý nha: Điều quan trọng cần lưu ý là khi sử dụng PUT, bạn cần gửi toàn bộ nội dung của tài nguyên, không chỉ gửi các trường cần thay đổi. PUT sẽ cập nhật lại toàn bộ theo yêu cầu mới của bạn

2. PATCH

  • PATCH (Partial Update): Phương thức PATCH được sử dụng để cập nhật một phần nội dung của tài nguyên.
  • Khi sử dụng PATCH, bạn chỉ cần gửi dữ liệu mới cho các trường cần thay đổi trong tài nguyên.
  • Các trường không được gửi sẽ không bị thay đổi hoặc bị xóa trong tài nguyên.
  • Điều này làm cho PATCH trở nên hữu ích khi bạn muốn chỉ cập nhật một phần nhỏ của tài nguyên mà không cần gửi lại toàn bộ nội dung.

Ví dụ: Mình sử dụng phương thức GET để lấy ra record như sau:

Request: GET/monhoc/stt=2 (Đây là mình viết ví dụ câu request thôi đó nha ^-^)

Response:

{ "subject": "Lập trình cơ bản", "lecturer": "Nguyễn Văn A", "credits": 4
}

Sau đó mình sử dụng phương thức PATCH để bổ sung thêm tên giảng viên

Request: PATCH/monhoc/stt=2

Response:

"lecturer": "Nguyễn Văn A, Trần Thị B"

Sau đó mình sử dụng phương thức GET để kiểm tra lại record

Và kết quả là:

{ "subject": "Lập trình cơ bản", "lecturer": "Nguyễn Văn A, Trần Thị B", "credits": 4
}

👉️ Chúng ta thấy răng các field không yêu cầu cập nhật vẫn còn, nó không bị mất đi như phương thức PUT

Nhớ lưu ý nha: Phương thức PATCH được sử dụng để cập nhật một phần nội dung của tài nguyên mà bạn yêu cầu muốn bổ sung hoặc thay đổi. Các field không yêu cầu thay đổi hoặc bổ sung vẫn tồn tại sau khi sử dụng PATCH

3. Nếu tôi muốn tạo field mới trong record thì tôi nên sử dụng phương thức nào ?

🗯️Hãy giúp Sizuka trả lời câu hỏi đi nào. Let's go !

Sizuka dùng PUT

Sizuka dùng phương thức PUT để thêm "Phòng học"

Request: PUT/monhoc/stt=2

Response:

{ "subject": "Lập trình cơ bản", "lecturer": "Nguyễn Văn A", "credits": 4, "room": "RD102"
}

Sau đó Sizuka sử dụng phương thức GET để kiểm tra lại record

Và kết quả là:

{ "subject": "Lập trình cơ bản", "lecturer": "Nguyễn Văn A", "credits": 4, "room": "RD102"
}

⚡️⚡️⚡️ Vậy field đã được thêm vào, đúng như ý Sizuka mong muốn

👉️ Lưu ý rằng: Nếu tài nguyên chưa tồn tại, PUT sẽ tạo tài nguyên mới với nội dung mới.

Sizuka dùng PATCH

Sizuka dùng phương thức PATCH để thêm "Phòng học"

Request: PATCH/monhoc/stt=2

Response:

{ "subject": "Lập trình cơ bản", "lecturer": "Nguyễn Văn A", "credits": 4, "room": "RD102"
}

Sau đó Sizuka sử dụng phương thức GET để kiểm tra lại record

Và kết quả là:

{ "subject": "Lập trình cơ bản", "lecturer": "Nguyễn Văn A", "credits": 4,
}

⚡️⚡️⚡️ Vậy field mới không được thêm vào, Sizuka đã có lựa chọn cho cuộc đời mình

👉️ Lưu ý rằng: Nếu tài nguyên chưa tồn tại, PATCH sẽ không tạo tài nguyên mới với nội dung mới. Vì vậy nếu muốn thêm field mới ta cần sử dụng phương thức PUT.

3. Tổng kết

  • Tóm lại, PUT và PATCH đều là phương thức được sử dụng để cập nhật thông tin trên một tài nguyên trên máy chủ. PUT thay thế toàn bộ nội dung của tài nguyên, trong khi PATCH chỉ cập nhật một phần thông tin.
  • Cần chú ý rằng việc sử dụng PUT và PATCH phụ thuộc vào tính năng hỗ trợ của máy chủ và nên tuân theo các tiêu chuẩn và hướng dẫn của RESTful API.

✏️ Ps: Mình sẽ update thêm video nói về về hai phương thức PUT và PATCH sử dụng Postman

Lời cuối mình xin cảm ơn mọi người đã đọc bài viết !

Bình luận

Bài viết tương tự

- vừa được xem lúc

API testing - Xử lý với array - Làm việc với "thời gian"

1. Xử lý array. Bài viết hôm nay sẽ chia sẻ về việc lưu cả 1 list vào trong environment. Mình xử dụng luôn api test của Postman: https://postman-echo.

0 0 31

- vừa được xem lúc

API Testing – Những lưu ý khi code API test - Reuse test script

1. Những lưu ý khi code API test. a. Postman – Workspace.

0 0 178

- vừa được xem lúc

API testing - Cách test API - Run Test Suites từ Runner

1. Cách test API như thế nào. . API chỉ là cầu nối nói chuyện giữa Client và Server.

0 0 42

- vừa được xem lúc

Mở đầu về API Testing

I.API là gì? ​. Trên phương diện khách quan:. API là cái cầu nối giữa client và server.

0 0 23

- vừa được xem lúc

Mở đầu về API Testing (Phần 2)

Như đã đề cập ở phần trước, link bài viết:. https://viblo.

0 0 87

- vừa được xem lúc

Sơ lược về mô hình Client-Server và giao thức HTTP

1. Mô hình Client-Server. Để hiểu được mô hình Client-Server, chúng ta hãy lấy 1 ví dụ nhỏ là: bạn muốn biết thời tiết của thành phố trong hôm nay. .

0 0 42