Tin tổng hợp

Sử dụng các HTTP Verbs GET POST PUT DELETE trong Web API – https://mbfamily.vn

Sử dụng những HTTP Verbs GET POST PUT DELETE trong Web API

2.7

(54.04%) 47 vote[s]( 54.04 % ) vote [ s ]

Mở đầu

Trong các bài viết trước về chủ đề Web API các bạn đã biết cách tạo và sử dụng Web API service, cũng như cách kiểm nghiệm xem Web API service chạy được hay chưa.
Nếu chưa biết thì các bạn có thể tham khảo lại các bài viết theo link bên dưới:

Trước đây khi sử dụng WCF REST service hoặc Web service thường thì, tất cả chúng ta chỉ chăm sóc đến những phương pháp GET và POST nhưng giờ đây khi sử dụng Web API mọi thứ trông có vẻ như phức tạp hơn khi ngoài những HTTP verb GET, POST còn có thêm PUT, DELETE. Vậy tại sao phải chăm sóc đến PUT và DELETE và cách sử dụng chúng như thế nào cho đúng trong project Web API ? Chúng ta sẽ cùng tìm câu vấn đáp trong bài viết này .

Giới thiệu về HTTP Verb

Để khởi đầu tất cả chúng ta sẽ tìm hiểu và khám phá HTTP verb là gì ? Hiểu đơn thuần HTTP verb là một thành phần của request gọi từ client tới server để nhu yếu server thực thi một việc gì đó như là lấy tài liệu từ server về, gửi tài liệu lên server để giải quyết và xử lý, update hoặc xóa dữ liệu trên server …Để biết cụ thể hơn những bạn hoàn toàn có thể đọc bài viết trên wikipedia về HTTP :

Sử dụng các phương thức theo chuẩn RESTful

Để những web api tuân thủ theo chuẩn restful tất cả chúng ta cần sử dụng đúng những HTTP verb tương ứng với ý nghĩa của chúng. Đơn giản hoàn toàn có thể hiểu từng HTTP verb tương ứng với một thuật ngữ rất quen thuộc với tất cả chúng ta đó là CRUD viết tắt của :

  • POST – Create: Tạo dữ liệu mới
  • GET – Read: Lấy dữ liệu về
  • PUT – Update: Cập nhật dữ liệu
  • DELETE – Delete: Xóa dữ liệu
Xem thêm  suối nước nóng trong tiếng Tiếng Anh - Tiếng Việt-Tiếng Anh | Glosbe

Trong 4 HTTP verb trên mặc dầu POST hoàn toàn có thể triển khai tổng thể những action nhưng với RESTful service thì cần sử dụng toàn bộ những verb trên chính bới :

  • 3 verb (GET, PUT, DELETE) được gọi là các phương thức không thay đổi giá trị (idempotent), tức là bạn có thể gọi GET/PUT/DELETE nhiều lần cũng không có lỗi hay gây bất kỳ ảnh hưởng nào đến ứng dụng.
  • Nhưng POST lại là một phương thức làm thay đổi giá trị, tức là nếu gọi POST nhiều lần thì sẽ tạo ra nhiều dữ liệu giống nhau.

Vì nguyên do trên nên việc tuân thủ web api theo chuẩn RESTful khá quan trọng, không tuân thủ cũng được nhưng khi đó rất hoàn toàn có thể bạn sẽ nhận được những tác dụng không mong ước như là ví dụ trùng lặp tài liệu ở trên. Một ví dụ nổi bật nữa là nếu dùng GET để thực thi thêm mới tài liệu thì khi url được index bởi cỗ máy tìm kiếm Google Crawler sẽ dẫn đến GET được thực thi nhiều lần không trấn áp được .

Phương thức HTTP mặc định trong Web API

Ở phần trên tất cả chúng ta đã khám phá về những HTTP verb theo chuẩn RESTful, giờ đây tất cả chúng ta sẽ cùng xem nó vận dụng trong ASP.NET Web API như thế nào ? Giả sử tất cả chúng ta tạo mới một ASP.NET Web API project với kích hoạt như sau, nếu chỉ nhìn vào code bạn hoàn toàn có thể đoán đây là một GET action chính do nó trả về tài liệu .

Xem thêm  Bọ rầy – Wikipedia tiếng Việt

1234567891011

publicclassDefaultController:ApiController

{

///

/ / / Returns all values .

/ / /

/// String array.

publicIHttpActionResultValues()

{

returnOk(newstring[]{” value1 “,” value2 “});

}

}

Chúng ta sẽ sử dụng Fiddler để test thử action này với phương thức GET

Kết quả là chúng ta nhận được lỗi 405 – Method Not Allowed.

Vậy tại sao lại có lỗi này? Câu trả lời chính là do thuật toán tìm phương thức HTTP của ASP.NET Web API cho các action ưu tiên theo thứ tự như sau:

  1. Nếu action có các attribute như [HttpGet] [HttpPost]… thì nó sẽ chấp nhận các phương thức này

  2. Nếu tên của action bắt đầu với các từ “Get”, “Post”, “Put”, “Delete”… thì nó cũng sẽ chấp nhận các phương thức này

  3. Còn nếu không thì phương thức mặc định là POST

Vì vậy chúng ta thấy action demo đang rơi vào trường hợp thứ 3, Values không chứa từ khóa và cũng không có HTTP attribute nên nó chỉ hỗ trợ POST. Chúng ta đổi lại Method POST và test thử

Kết quả dữ liệu đã được trả về nhưng chúng ta lại đang sử dụng phương thức POST, rõ ràng là không theo chuẩn RESTful. Vậy hãy sửa lại tên action bổ sung thêm Get hoặc bổ sung HTTP verb [HttpGet] và kiểm tra lại xem mọi thứ đã như mong muốn hay chưa.

Xem thêm  Con Ghẹ Tiếng Anh Là Gì – Từ Vựng Tiếng Anh Về Hải Sản

123456789101112

publicclassDefaultController:ApiController

{

///

/ / / Returns all values .

/ / /

/// String array.

[HttpGet]

publicIHttpActionResultGetValues()

{

returnOk(newstring[]{” value1 “,” value2 “});

}

}

Bây giờ thì dữ liệu đã trả về theo phương thức GET như mong muốn.

Kết luận

Trong bài viết này tất cả chúng ta đã cùng tìm hiểu và khám phá nguyên do tại sao phải sử dụng đúng những phương pháp HTTP GET, POST, PUT, DELETE khi phong cách thiết kế những service theo chuẩn RESTful. Chúng ta cũng hiểu những phương pháp mặc định của ASP.NET Web API và cách sử dụng những phương pháp này cho Web API action như thế nào .Lời sau cuối tôi muốn nói đó là : Hãy luôn phong cách thiết kế những Web API của bạn tuân thủ theo chuẩn RESTful, sử dụng những phương pháp HTTP một cách hài hòa và hợp lý chính bới nó sẽ quyết định hành động loại phương pháp nào client hoàn toàn có thể liên kết và sử dụng Web API của bạn, nó sẽ giúp cho những Web API của bạn được trong sáng, thống nhất, tránh được những lỗi không đáng có .Hy vọng bài viết này sẽ giúp ích cho những bạn trong quy trình thiết kế xây dựng những Web API của riêng mình. Nếu bạn có bất kể câu hỏi hay kinh nghiệm tay nghề nào hãy để lại comment bên dưới bài viết và đừng quên san sẻ cho bè bạn bài viết này nếu thấy có ích .Happy coding. Stay tuned .

P/s: Source code example trong bài các bạn có thể download tại đây: WebAPIHTTPDemo

Like this:

Like

Loading …

Xem thêm bài viết thuộc chuyên mục: Tin tổng hợp

Related Articles

Trả lời

Email của bạn sẽ không được hiển thị công khai.

Back to top button