Giới thiệu về ASP.NET Web API

asp net web api la gi

Trong bài viết này, tôi sẽ giới thiệu ngắn gọn về ASP.NET WEB API Framework . Vào cuối bài viết này, bạn sẽ hiểu rất rõ về những điều sau đây

  1. API Web ASP.NET là gì?
  2. Các dịch vụ RESTful là gì?
  3. Sự khác biệt giữa REST và SOAP là gì?
  4. Sự khác biệt giữa Dịch vụ WCF và Dịch vụ API Web là gì? Khi nào nên chọn cái này hơn cái kia?
  5. Sự khác biệt giữa Dịch vụ WCF và Dịch vụ API Web là gì? Khi nào nên chọn cái này hơn cái kia?
  6. Tại sao tôi cần chọn ASP.NET WEB API?
  7. Sự khác biệt giữa WCF và API API và WCF REST và Dịch vụ web là gì?
  8. Sự khác biệt giữa ASP.NET MVC và ASP.NET Web API là gì

Chúng ta sẽ lần lượt trả lời từng câu hỏi trên. 

Bạn đang xem: Giới thiệu về ASP.NET Web API

1. API Web ASP.NET là gì?

Thuật ngữ API là viết tắt của Application Programming Interface – Giao diện lập trình ứng dụng,  . ASP.NET Web API là một framework (khung làm việc), được cung cấp bởi Microsoft, giúp dễ dàng xây dựng API Web , tức là các dịch vụ dựa trên giao thức HTTP.  ASP.NET Web API là một nền tảng lý tưởng để xây dựng các dịch vụ Restful trên đỉnh .NET Framework. Các dịch vụ API Web này có thể được sử dụng bởi nhiều client khác nhau, chẳng hạn như

  1. Trình duyệt
  2. Ứng dụng di động
  3. Ứng dụng máy tính để bàn
  4. IOT, v.v.

Điều quan trọng nhất cần ghi nhớ là chúng ta có thể phát triển cả Restfull và Non-Restfull Web Services sử dụng ÁP.NET Web API framework. Nhưng chủ yếu khung này được sử dụng để tạo các dịch vụ RESTful. Nói tóm lại, khung này không cung cấp bất kỳ phong cách kiến ​​trúc cụ thể nào để tạo ra các dịch vụ. Trong loạt bài viết này, chúng ta sẽ thảo luận về việc tạo các dịch vụ RESTful từ đầu bằng cách sử dụng khung API Web.

IOT là gì?

IOT là viết tắt của Internet Of Things và nó thực sự là một mạng lưới các thiết bị vật lý, tòa nhà, xe cộ và các mặt hàng khác được nhúng với thiết bị điện tử, cảm biến, phần mềm, thiết bị truyền động và kết nối mạng cho phép các đối tượng này thu thập và trao đổi thông tin hoặc bạn có thể nói dữ liệu.

Nói cách khác, chúng ta có thể nói, Internet Of Things (IoT) là các đối tượng hoặc thiết bị cần có địa chỉ IP và chúng có thể giao tiếp với các thiết bị và đối tượng hỗ trợ Internet khác qua Internet. Ví dụ về IoT bao gồm hệ thống bảo mật, máy điều nhiệt, thiết bị điện tử, ô tô, v.v., ngoài máy tính xách tay, máy tính để bàn và điện thoại thông minh.

2. Các dịch vụ RESTful là gì?

Thuật ngữ REST là viết tắt của Representational State TransferREST được giới thiệu lần đầu tiên vào năm 2000. REST thực sự là một mẫu kiến ​​trúc được sử dụng cơ bản để tạo Web API, sử dụng HTTP làm phương thức giao tiếp. Mẫu kiến ​​trúc REST này chỉ định một tập hợp các ràng buộc và các ràng buộc đó mà một hệ thống nên tuân theo để được coi là một Dịch vụ đầy đủ. Sau đây là các ràng buộc REST.

Client-Server Constraint (Ràng buộc máy khách – máy chủ)  

Các Client-Server Constraint là ràng buộc đầu tiên của mẫu kiến trúc Rest. Ràng buộc này xác định rằng Máy khách gửi yêu cầu đến máy chủ và máy chủ sẽ gửi phản hồi lại cho máy khách. Sự tách biệt mối quan tâm này hỗ trợ sự phát triển độc lập của cả logic phía máy khách và logic phía máy chủ.

Xem thêm: GDP Là Gì? Cách Tính Và Ý Nghĩa Của Chỉ Số GDP Với Kinh Tế

Stateless Constraint (Ràng buộc trạng thái)

Ràng buộc không trạng thái xác định rằng giao tiếp giữa máy khách và máy chủ phải không trạng thái giữa các yêu cầu. Điều đó có nghĩa là chúng ta không nên lưu trữ bất kỳ thông tin nào về máy khách trên máy chủ. Yêu cầu đến từ máy khách phải chứa tất cả các thông tin cần thiết cho máy chủ để xử lý yêu cầu đó sẽ đảm bảo rằng mỗi yêu cầu đến từ máy khách sẽ được máy chủ xử lý độc lập.

Cacheable Constraint (Ràng buộc có thể lưu)

Ràng buộc tiếp theo là ràng buộc có thể lưu . Một số dữ liệu chủ được cung cấp bởi máy chủ như danh sách các quốc gia hoặc danh sách các thành phố hoặc danh sách của bộ phận trong công ty không thay đổi thường xuyên. Ràng buộc có thể lưu trong bộ nhớ cho phép máy khách quyết định thời gian dữ liệu này tốt trong bao lâu để khách hàng không cần phải quay lại máy chủ nhiều lần cho cùng một dữ liệu.

Uniform Interface (Giao diện thống nhất)

Ràng buộc giao diện thống nhất định nghĩa một giao diện giữa máy khách và máy chủ. Để hiểu ràng buộc giao diện thống nhất, chúng ta cần hiểu tài nguyên là gì và các động từ HTTP – GET, PUT, POST và DELETE. Từ quan điểm API REST, các tài nguyên thường đại diện cho các thực thể dữ liệu như Sản phẩm, Sinh viên, Khách hàng, v.v … Động từ HTTP như GET, POST, PUT và DELETE được gửi với mỗi yêu cầu từ máy khách cho API biết Làm gì với tài nguyên. Mỗi tài nguyên trong API REST được xác định bởi một URI duy nhất (Mã định danh tài nguyên đồng nhất). Bảng sau đây cho thấy một số yêu cầu điển hình mà bạn thấy trong API

  • /Students nếu động từ GET, nó sẽ lấy danh sách sinh viên
  • /Students/1 nếu động từ là GET sẽ lấy thông tin về sinh viên có id là 1
  • /Students nếu động từ là POST, nó sẽ tạo mới một sinh viên
  • /Students/1 nếu động từ là PUT, nó sẽ cập nhật thông tin của sinh  có id là 1
  • /Students/1 nếu động từ là XÓA, thì nó sẽ xóa một bản ghi trong đó id là 1.

Một khái niệm khác có liên quan đến Giao diện thống nhất là HATEOAS . HATEOAS là viết tắt của Hypermedia as the Engine of Application StateĐiều này nói rằng trong mỗi yêu cầu có thể có một tập hợp các siêu liên kết sẽ cho bạn biết những hành động hoặc hoạt động khác mà bạn có thể thực hiện trên tài nguyên. Nếu điều này không rõ ràng vào lúc này, đừng lo lắng, chúng tôi sẽ thảo luận về khái niệm này trong một bài viết sau.

Có 2 hạn chế khác.

Layered System (Hệ thống lớp)

REST cho phép chúng tôi sử dụng kiến ​​trúc hệ thống phân lớp trong đó chúng tôi triển khai các API trong máy chủ A và lưu trữ dữ liệu trên máy chủ B và xác thực các yêu cầu trong máy chủ C. Ví dụ: khách hàng không thể chỉ cần biết liệu anh ấy có được kết nối trực tiếp với máy chủ hay không đến một máy chủ trung gian trên đường.

Code on Demand (Mã theo yêu cầu) (tùy chọn)

Code on Demand là một ràng buộc tùy chọn. Chúng tôi sẽ thảo luận về hạn chế này trong một bài viết sau.

3. Sự khác biệt giữa REST và SOAP là gì?

Hãy để chúng tôi thảo luận về sự khác biệt giữa dịch vụ REST và SOAP:

  1. Thuật ngữ SOAP là viết tắt của Simple Object Access Protocol (Giao thức truy cập đối tượng đơn giản) trong khi thuật ngữ REST là viết tắt của Representational State Transfer (Chuyển giao trạng thái đại diện).
  2. SOAP dựa trên giao thức XML, được xây dựng dựa trên HTTP hoặc đôi khi TCP / IP hoặc SMTP trong khi REST thực sự không phải là giao thức mà nó là một mẫu kiến ​​trúc tức là kiến ​​trúc dựa trên tài nguyên.
  3. SOAP cung cấp thông số kỹ thuật cho việc triển khai cả trạng thái không trạng thái và trạng thái đầy đủ trong khi REST hoàn toàn dựa trên triển khai không trạng thái.
  4. SOAP thực thi định dạng thông báo là XML trong khi REST không thực thi định dạng thông báo dưới dạng XML hoặc JSON.
  5. Thông báo SOAP chứa một phong bì bao gồm các tiêu đề SOAP và thân SOAP nơi chúng tôi thực sự lưu trữ thông tin hoặc dữ liệu mà chúng tôi muốn gửi, trong khi REST sử dụng các tiêu đề HTTP tích hợp (với nhiều loại phương tiện khác nhau) để lưu trữ dữ liệu mà chúng tôi muốn gửi và sau đó sử dụng các Động từ HTTP như các phương thức GET, POST, PUT và DELETE để thực hiện các hoạt động CRUD.
  6. SOAP sử dụng các giao diện và các hoạt động được đặt tên để hiển thị dịch vụ cho máy khách tiêu thụ trong khi REST sử dụng URI để hiển thị các tài nguyên và phương thức như GET, POST, PUT và DELETE.
  7. Hiệu suất SOAP chậm khi so sánh với REST.
4. Sự khác biệt giữa Dịch vụ WCF và Dịch vụ API Web là gì? Khi nào nên chọn cái này hơn cái kia?

Thuật ngữ WCF là viết tắt của Windows Communication Foundation và nó là một trong những lựa chọn phổ biến nhất có sẵn trong .NET Framework để tạo các dịch vụ REST. Vấn đề với WCF là chúng ta cần thực hiện nhiều cấu hình để biến dịch vụ WCF thành dịch vụ REST. Vì vậy, nếu bạn muốn phát triển dịch vụ REST hiện nay, thì lựa chọn đầu tiên và thích hợp nhất là API Web ASP.NET, được thiết kế riêng cho mục đích này, tức là để xây dựng Dịch vụ REST.

Vậy thì câu hỏi xuất hiện trong đầu chúng ta là khi nào nên sử dụng WCF? hãy thảo luận về điều đó.

WCF về cơ bản được sử dụng để phát triển các dịch vụ độc lập với vận chuyển / giao thức . Ví dụ: bạn muốn xây dựng một dịch vụ duy nhất có thể được sử dụng bởi 2 khách hàng khác nhau – giả sử, một máy khách Java và máy khách .NET. Máy khách Java muốn giao thức (giao thức vận chuyển) là HTTP và anh ta cũng muốn thông báo ở định dạng XML để có khả năng tương tác, trong khi máy khách .NET muốn giao thức (giao thức vận chuyển) là TCP và anh ta muốn thông báo ở trong định dạng nhị phân cho hiệu suất. Nếu đây là kịch bản, thì WCF là lựa chọn đúng đắn. Những gì bạn cần làm ở đây là, chỉ cần phát triển một dịch vụ WCF duy nhất và sau đó hiển thị 2 điểm cuối một cho mỗi máy khách (nghĩa là một điểm cuối cho máy khách Java và điểm cuối khác cho máy khách .NET).

Xem thêm: Tần Số Là Gì ? Tần Số Dòng Điện 50Hz # 60Hz Như Thế Nào ?

Điều bạn cần nhớ là bạn có thể sử dụng WCF để tạo các dịch vụ REST. Vấn đề là cấu hình nhiều hơn một chút để biến Dịch vụ WCF thành Dịch vụ nghỉ ngơi WCF. Vì vậy, nếu bạn bị mắc kẹt với .NET Framework 3.5 hoặc bạn có dịch vụ SOAP hiện có và bạn muốn thêm REST để tiếp cận nhiều khách hàng hơn, thì hãy sử dụng WCF. 

Nếu bạn không có giới hạn của .NET Framework 3.5 hoặc nếu bạn muốn phát triển một dịch vụ nghỉ ngơi hoàn toàn mới thì hãy sử dụng ASP.NET Web API.

5. Tại sao tôi cần chọn ASP.NET WEB API?

Ngày nay, một ứng dụng web không đủ hoặc không đủ để tiếp cận tất cả khách hàng của mình. Mọi người đang trở nên rất thông minh; họ đang sử dụng các loại thiết bị khác nhau như điện thoại di động, iPhone, máy tính bảng, v.v. trong cuộc sống hàng ngày. Các thiết bị này đang có rất nhiều ứng dụng giúp cuộc sống của họ trở nên dễ dàng. Nói một cách đơn giản, chúng ta có thể nói rằng chúng ta đang hướng tới thế giới ứng dụng từ web.

Vì vậy, nếu chúng tôi muốn hiển thị dữ liệu của mình (dữ liệu doanh nghiệp) cho các trình duyệt cũng như cho tất cả các ứng dụng thiết bị hiện đại này một cách nhanh chóng, an toàn và đơn giản, thì chúng tôi nên có một API tương thích với tất cả các trình duyệt những thiết bị hiện đại này.

ASP.NET Web API  là một khung tuyệt vời để xây dựng các dịch vụ HTTP có thể được sử dụng bởi nhiều khách hàng bao gồm trình duyệt, điện thoại di động, iPhone và máy tính bảng. 

6. Sự khác biệt giữa WCF, Web API, WCF REST, Web Services là gì?

.NET framework có một số công nghệ cho phép chúng tôi tạo các dịch vụ HTTP như Web Services, WCF, WCF Rest và giờ là Web API. Sau đây là sự khác biệt giữa bốn loại này:

Web Services 
  1. Web Services dựa trên SOAP và nó trả về dữ liệu ở định dạng XML.
  2. Nó chỉ hỗ trợ giao thức HTTP.
  3. Web Services không phải là một nguồn mở nhưng nó có thể được sử dụng bởi bất kỳ client nào hiểu XML.
  4. Nó chỉ có thể được lưu trữ trên IIS.
WCF:
  1. WCF cũng dựa trên SOAP và nó cũng trả về dữ liệu dưới dạng XML.
  2. Không giống như Web , WCF hỗ trợ các loại giao thức (giao thức vận chuyển) khác nhau như TCP, Named Faucet, HTTP, HTTPS và MSMQ.
  3. Vấn đề chính với dịch vụ WCF nó đòi hỏi rất nhiều cấu hình gây đau đầu cho nhà phát triển.
  4. Giống như Dịch vụ web, WCF cũng không phải là nguồn mở nhưng nó có thể được sử dụng bởi bất kỳ khách hàng nào hiểu XML.
  5. WCF có thể được lưu trữ trong ứng dụng hoặc trên IIS hoặc sử dụng windows services.
WCF Rest:
  1. Để sử dụng dịch vụ WCF làm dịch vụ WCF Rest, chúng tôi phải kích hoạt webHttpBindings.
  2. WCF Rest  hỗ trợ các động từ HTTP như GET và POST bằng cách sử dụng các thuộc tính [WebGet] và [WebInvoke] tương ứng.
  3. Để sử dụng các động từ HTTP khác, bạn phải thực hiện một số cấu hình trong IIS để nó sẽ chấp nhận est est của động từ cụ thể đó trên tệp .svc
  4. Nó hỗ trợ các định dạng dữ liệu khác nhau như định dạng  XML, JSON  Atom.
Web API:
  1. Khung API Web là một framework mới được sử dụng cơ bản để phát triển các dịch vụ dựa trên HTTP một cách dễ dàng và đơn giản.
  2. Không giống như WCF Rest Service, nó sử dụng các tính năng HTTP đầy đủ như URI, tiêu đề yêu cầu / phản hồi, bộ đệm, phiên bản và các định dạng dữ liệu khác nhau.
  3. API Web ASP.NET cũng hỗ trợ hầu hết các tính năng MVC như định tuyến, bộ điều khiển, hành động, bộ lọc, chất kết dính mô hình, bộ chứa IOC, hàm phụ thuộc, kiểm tra đơn vị làm cho nó đơn giản và mạnh mẽ hơn.
  4. Dịch vụ API WEB có thể được lưu trữ trên IIS hoặc  trong ứng dụng
  5. Các Phản hồi trong Dịch vụ API Web được MediaTypeFormatter định dạng thành JSON, XML hoặc bất kỳ định dạng tùy chỉnh nào bạn muốn.
7. Sự khác biệt giữa ASP.NET MVC và ASP.NET Web API là gì?

Sự khác biệt giữa ASP.NET MVC và ASP.NET Web API như sau

  1. ASP.NET MVC được sử dụng để tạo các ứng dụng web trả về cả lượt xem và dữ liệu nhưng ASP.NET WEB API được sử dụng để tạo các dịch vụ HTTP đầy đủ còn lại với cách dễ dàng và đơn giản chỉ trả về dữ liệu, không xem.
  2. API WEB giúp xây dựng các dịch vụ đầy đủ REST qua .NET Framework và nó cũng hỗ trợ đàm phán nội dung (đó là về việc quyết định dữ liệu định dạng phản hồi tốt nhất mà khách hàng có thể chấp nhận. Định dạng dữ liệu có thể là JSON, XML, ATOM hoặc bất kỳ dữ liệu được định dạng tùy chỉnh khác) không có trong MVC.
  3. API WEB cũng đảm nhiệm việc trả lại dữ liệu theo một định dạng cụ thể như JSON, XML hoặc bất kỳ dữ liệu nào khác dựa trên tiêu đề Chấp nhận trong yêu cầu. ASP.NET MVC Framework có thể trả về dữ liệu chỉ ở định dạng JSON bằng cách sử dụng kiểu trả về JsonResult.
  4. Trong API WEB, yêu cầu được ánh xạ tới các hành động dựa trên các động từ HTTP nhưng trong MVC nó được ánh xạ tới tên hành động.
  5. Chúng tôi có thể kết hợp API WEB và bộ điều khiển MVC trong một dự án để xử lý các yêu cầu AJAX nâng cao có thể trả về dữ liệu theo định dạng JSON, XML hoặc bất kỳ định dạng nào khác và xây dựng dịch vụ HTTP toàn diện. Thông thường, điều này sẽ được gọi là WEB API tự lưu trữ.
  6. Hơn nữa, WEB API có kiến ​​trúc gọn nhẹ và ngoại trừ ứng dụng web, nó cũng có thể được sử dụng với các ứng dụng điện thoại thông minh.

Trong bài viết tiếp theo, tôi sẽ thảo luận về quy trình từng bước để tạo ứng dụng ASP.NET Web API từ đầu. Ở đây, trong bài viết này, tôi đã giới thiệu ngắn gọn về ASP.NET Web API. Tôi hy vọng bài viết này sẽ giúp bạn hiểu được nhiều hơn về Web API cũng như các khái niệm liên quan.

Nguồn: https://fusionsuitesvungtau.com.vn
Danh mục: Hỏi đáp ✅