0
0
Lập trình
Thaycacac
Thaycacac thaycacac

🔥 Khám Phá RESTful API: Những Điều Có Thể Bạn Chưa Biết ⚡

Đăng vào 2 tuần trước

• 5 phút đọc

Giới Thiệu Về RESTful API

Bạn có bao giờ tự hỏi tại sao chúng ta lại sử dụng phương thức POST để tạo tài nguyên và GET để truy xuất dữ liệu, nhưng không làm ngược lại? Hãy cùng khám phá một vài khía cạnh quan trọng.

Về Tham Số Truy Vấn (Query Parameters)

Có thể đặt tham số truy vấn vào phương thức POST không?

, bạn có thể bao gồm tham số truy vấn trong yêu cầu POST. Mặc dù tham số truy vấn thường được liên kết với yêu cầu GET, nhưng chúng cũng có thể được sử dụng với yêu cầu POST để gửi thêm dữ liệu đến máy chủ.

Cách Hoạt Động:
Bạn có thể bổ sung các tham số truy vấn vào URL khi thực hiện yêu cầu POST. Ví dụ:

Copy
POST /api/resource?param1=value1&param2=value2

Trường Hợp Sử Dụng: Tham số truy vấn có thể được sử dụng để lọc, sắp xếp hoặc chỉ định hành vi tùy chọn trong một yêu cầu POST, bổ sung cho dữ liệu gửi trong thân yêu cầu.

Tóm lại, mặc dù rất ít thông dụng, việc sử dụng tham số truy vấn trong yêu cầu POST là hợp lệ và có thể hữu ích trong một số tình huống nhất định.

Về Dữ Liệu Thân Yêu Cầu (Body Data)

Có thể gửi dữ liệu thân yêu cầu với phương thức GET không?

Không, bạn thường không nên gửi dữ liệu thân yêu cầu với phương thức GET. Các yêu cầu GET được thiết kế để truy xuất dữ liệu và nên là idempotentcacheable. Thân yêu cầu trong yêu cầu GET thường bị máy chủ bỏ qua và không được hỗ trợ bởi hầu hết các máy khách và máy chủ HTTP. Thay vào đó, hãy sử dụng tham số truy vấn để gửi dữ liệu cùng với một yêu cầu GET, hoặc chuyển sang sử dụng POST nếu bạn cần bao gồm một thân yêu cầu.

Về Việc Lấy Dữ Liệu

Có thể lấy dữ liệu bằng phương thức POST không?

, bạn có thể truy xuất dữ liệu bằng phương thức POST, mặc dù đây không phải là cách sử dụng thông thường. POST thường được sử dụng để tạo hoặc cập nhật tài nguyên, nhưng có thể được sử dụng để lấy dữ liệu khi bạn cần bao gồm dữ liệu thân yêu cầu phức tạp trong yêu cầu. Tuy nhiên, GET thì phù hợp hơn cho việc lấy dữ liệu vì nó được thiết kế để là idempotentcacheable.

Sự Khác Biệt Giữa Phương Thức POSTGET

Mục Đích:

GET: Chủ yếu được sử dụng để truy xuất dữ liệu từ máy chủ. Các tham số truy vấn trong yêu cầu GET thường được sử dụng để lọc hoặc sắp xếp dữ liệu đang được yêu cầu.

POST: Chủ yếu được sử dụng để gửi dữ liệu đến máy chủ, thường để tạo hoặc cập nhật tài nguyên. Các tham số truy vấn trong yêu cầu POST có thể cung cấp ngữ cảnh hoặc tùy chọn bổ sung cho hoạt động đang được thực hiện.

Tính Minh Bạch:

GET: Các tham số truy vấn được bao gồm trong URL và có thể nhìn thấy trong thanh địa chỉ của trình duyệt, khiến chúng ít an toàn cho dữ liệu nhạy cảm.

POST: Các tham số truy vấn có thể được bao gồm trong URL, nhưng dữ liệu chính được gửi trong thân yêu cầu, không thể nhìn thấy trên thanh địa chỉ.

Độ Dài Dữ Liệu:

GET: Có giới hạn về độ dài của URL, điều này có thể hạn chế lượng dữ liệu bạn có thể gửi qua các tham số truy vấn (thường khoảng 2000 ký tự).

POST: Thông thường cho phép gửi lượng lớn dữ liệu trong thân yêu cầu mà không gặp phải giới hạn nghiêm ngặt như đối với độ dài URL.

Lưu Cache:

GET: Các phản hồi cho yêu cầu GET có thể được cache bởi trình duyệt và các proxy trung gian, cải thiện hiệu suất cho các yêu cầu lặp lại.

POST: Các phản hồi cho yêu cầu POST thường không được cache, vì chúng thường đại diện cho các hành động thay đổi trạng thái của máy chủ (như tạo một tài nguyên).

Tính Idempotency:

GET: Các yêu cầu GET là idempotent, có nghĩa là việc thực hiện cùng một yêu cầu nhiều lần sẽ tạo ra cùng một kết quả mà không có hiệu ứng phụ.

POST: Các yêu cầu POST không nhất thiết là idempotent; việc gửi cùng một yêu cầu nhiều lần có thể dẫn đến việc tạo hoặc cập nhật nhiều tài nguyên.

Tóm Tắt:

Sử dụng GET để truy xuất dữ liệu, thường với việc lọc hoặc sắp xếp thông qua các tham số truy vấn, và khi bảo mật dữ liệu không phải là mối quan tâm hàng đầu.

Sử dụng POST để gửi dữ liệu có thể thay đổi trạng thái của máy chủ, và khi bạn cần gửi các tải dữ liệu lớn hoặc phức tạp một cách an toàn. Tham số truy vấn vẫn có thể cung cấp thêm các tùy chọn trong yêu cầu POST, nhưng dữ liệu chính thường được gửi trong thân yêu cầu.

Còn Về Phương Thức PUT, DELETE Thì Sao?

Bạn có thể kỹ thuật lấy dữ liệu với các phương thức PUTDELETE cũng vậy, nhưng chúng không phải là cách sử dụng của chúng:

PUT: Chủ yếu được sử dụng để cập nhật một tài nguyên tại một URI xác định. Mặc dù bạn có thể bao gồm một thân phản hồi trong yêu cầu PUT, nhưng ý định thường là gửi dữ liệu để được cập nhật hơn là lấy dữ liệu.

DELETE: Được thiết kế để xóa một tài nguyên. Mặc dù một máy chủ có thể trả về một thân phản hồi khi xóa (như một thông điệp xác nhận hoặc chi tiết về tài nguyên đã xóa), DELETE không được dùng để lấy dữ liệu.

Nói chung, việc sử dụng GET để lấy dữ liệu phù hợp với tiêu chuẩn HTTP, trong khi POST, PUT, và DELETE được sử dụng để tạo, cập nhật và xóa tài nguyên tương ứng.

Nếu bạn thấy bài viết này hữu ích, hãy cho tôi biết bằng cách để lại một 👍 hoặc một bình luận! Nếu bạn nghĩ bài viết này có thể giúp ai đó, hãy thoải mái chia sẻ! Cảm ơn bạn rất nhiều! 😃
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào