Sự khác nhau giữa Web Service WCF Web API
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
Chúng ta sẽ lần lượt trả lời từng câu hỏi trên. 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ư
Đ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à 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. Thuật ngữ REST là viết tắt của Representational State Transfer. REST đượ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. 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ủ. 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. 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. 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
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. 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 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. Hãy để chúng tôi thảo luận về sự khác biệt giữa dịch vụ REST và SOAP:
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). Đ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. 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. .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:
Sự khác biệt giữa ASP.NET MVC và ASP.NET Web API như sau
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. CodeLean.vnTrọn bộ hướng dẫn ASP.NET Web API |