Header ads

Header ads
» » » Cách tạo asp.net web api service dùng cho mobile app

WCF REST Service là một công nghệ tương đối hiện đại nhưng nó vẫn chưa phải là công nghệ RESTfull đầy đủ vì chỉ hỗ trợ GET/POST. Trong bài viết này chúng ta sẽ cùng đi tìm hiểu công nghệ mới nhất của Microsoft hiện nay trợ giúp việc xây dựng các service dành cho các ứng dụng mobile, đó chính là asp.net web api.

ASP.NET Web API là gì?

Nói một cách đơn giản, Web API là API trên nền web (http) và ASP.NET Web API chính là framework giúp chúng ta tạo ra các api này. Web API là các service được xây dựng dựa trên http sử dụng mô hình lập trình convention như ASP.NET MVC. Các Web api service có ưu điểm là sử dụng được ở hầu hết các client từ desktop app, web app (browser) cho đến mobile app. Ưu điểm của web api so với WCF REST Service đó là:
  • Cấu hình hết sức đơn giản so với WCF
  • Performance cao
  • Hỗ trợ RESTful đầy đủ
  • Hỗ trợ đầy đủ các thành phần MVC như: routing, controller, action result, filter, model binder, IoC container, dependency injection, unit test
  • Open Source
Chúng ta đã hiểu qua về ASP.NET Web API, bây giờ chúng ta sẽ cùng bắt tay vào tạo thử các Web API này.

Tạo asp.net web api service

Để tạo asp.net web api service rất đơn giản, hãy cùng làm qua 3 bước dưới đây (Chúng ta sẽ sử dụng lại source code trong bài Cách tạo WCF Service trả về JSON dùng cho Mobile App)
  1. Trong Visual Studio 2013 ta tạo thêm một project ASP.NET Web Application và chọn template Web API như hình dưới

Tạo project Web API
  1. Bước tiếp theo chúng ta sẽ tạo Data Model sử dụng Entity Framework để web api service có thể tương tác CRUD (Create, Read, Update, Delete) dữ liệu được.
    Bài này mặc định là bạn đã có SQL Server và database Northwind. Nếu bạn chưa có vui lòng download và cài đặt theo link bên dưới đây:
    Trong project Tungnt.net.WebAPIDemo, right-click vào Models và chọn thêm New Item. Tìm từ khóa Model và chọn ADO.NET Entity Data Model đặt tên NorthwindDataModel như hình dưới:
    Add ADO.NET EDM
    Trong wizard chọn EF Designer from database. Click Next button sau đó chọn New Connection, điền địa chỉ SQL Server trên máy của bạn (ở đây trên máy tôi là .\SQL2008R2) rồi chọn database Northwind. Click OK rồi Next
    Entity Framework
    Entity Framework Connection
    Bước tiếp theo chúng ta chọn bảng Customers để làm việc và click Finish.
    Entity Framework Choose Table
  2. Đến đây chúng ta đã chuẩn bị xong phần Model giờ là lúc tạo ra các Web API.
    Entity Framework Data ModelRight click vào thư mục Controllers và chọn thêm controller. Ở bước này bạn có thể chọn Web API 2 Controller Empty để tự viết các phương thức từ đầu hoặc bạn cũng có thể chọn Web API 2 Controller with read/write actions khi đó Visual Studio sẽ hỗ trợ sinh ra các phương thức ví dụ để bạn có thể biết cách viết các service này. Ở đây tôi chọn Web API 2 Controller with actions, using Entity Framework vì tôi muốn Visual Studio sinh sẵn các code cho tôi theo Model luôn như hình sau:
    Add Web API ControllerTại cửa sổ Add Controller chọn Model class chính là Customer vừa tạo ở bước trên và click Add ta sẽ thấy Visual Studio sinh ra các phương thức Get/Post/Put/Delete với tất cả các code xử lý dùng LINQ theo đúng Model Customer đã chọn
    Add Web API ControllerWeb API Generate Code
    Vậy là công việc tạo các Web API đã hoàn tất chúng ta có thể sử dụng chúng ngay theo đúng template được comment trên đầu mỗi phương thức. Tùy theo nhu cầu bạn có thể viết thêm các phương thức khác trong Web Api controller này hoặc tạo ra các Web API Controller khác để sử dụng theo cách tương tự.

Kiểm tra asp.net web api service

Ở phần trên chúng ta đã biết cách tạo ra các Web API service bây giờ chúng ta có thể kiểm tra các web api service này có chạy hay không ngay trên browser.
  • Build lại project (Ctrl+Shift+B)
  • Set project thành Startup project sau đó Ctrl+F5 để chạy chúng ta sẽ thấy default của ứng dụng có 1 link API, đây chính là trang Help Page liệt kê tất cả các Web API có trong ứng dụng.
    Web API Home Page
  • Ngoài 2 API default là Account, Values giờ đây chúng ta có thêm API về Customer như hình dưới.
    Web API Help Page
    Chi tiết của một API rất đầy đủ, rõ ràng về các thông tin Request (URI, Body parameters) cũng như Response (JSON/XML)
    Web API Help Page
  • Trên browser chúng ta chỉ có thể kiểm tra nhanh được các service dạng Get nên ta sẽ kiểm tra service GetCustomers bằng cách sử dụng url thêm api/Customers như sau
    Web API Browser Test
    Dữ liệu trả về mặc định là dạng xml và chúng ta có thể tạm kết luận web api service chạy tốt. Trong các bài blog tiếp sau tôi sẽ hướng dẫn các bạn cách sử dụng Fiddler và RESTClient để có thể kiểm tra được các service POST, PUT, DELETE ở bài viết này chúng ta tạm thời chỉ có thể kiểm tra được service GET.Bạn có thể tham khảo bài viết mới về cách test service dùng Fiddler tại đây:  https://tungnt.net/su-dung-fiddler-test-web-service/

Cấu hình Web API Service chỉ trả về JSON

Qua hai phần trên chúng ta đã biết cách tạo ra và kiểm tra các Web API Service nhưng chúng ta cũng thấy Web API Service trả về cả dạng XML và JSON. Vậy câu hỏi đặt ra là có cách nào để chỉ trả về dạng JSON không?
Câu trả lời rất đơn giản vì Web API đã hỗ trợ sẵn chúng ta chỉ cần config mà thôi. Mở file WebApiConfig.cs trong thư mục App_Start và thêm dòng sau vào trong phương thức Register và thử kiểm tra lại api GetCustomers trên browser ta sẽ thấy service giờ chỉ trả về JSON
Web API Browser Test JSON
Ngoài ra nếu bạn muốn cấu trúc property của object JSON trả về đúng quy cách CamelCase tức là tên property dạng viết thường chữ cái đầu thì có thể thêm config sau vào Register
Web API Browser Test Camel Case JSON

Kết luận

Trong bài viết này tôi đã hướng dẫn các bạn cách thức tạo ra các Web API Service để có thể sử dụng trên các ứng dụng web (qua JavaScript) hoặc ứng dụng mobile như iOS, Android, Windows Phone… Web API là công nghệ mới nhất của Microsoft trong việc xây dựng các service, việc tạo các service cũng đơn giản hơn rất nhiều vì không còn phải cấu hình phức tạp như WCF. Hơn thế nữa Web API là một công nghệ RESTfull nó hỗ trợ tất cả các phương thức: GET/POST/PUT/DELETE dữ liệu nên nếu bạn muốn xây dựng các service cho riêng mình thì ngoài WCF REST Service giờ đây bạn có sự lựa chọn tốt hơn nữa đó chính là Web API.
Trong các bài viết sau chúng ta sẽ cùng tìm hiểu các cách thức xây dựng service khác trên công nghệ .NET cũng như cách kiểm tra các service này bằng các tool như Fiddler, RESTClient trước khi bắt tay xây dựng các ứng dụng client như desktop, mobile.
Hy vọng bài viết này sẽ giúp ích cho các bạn trong quá trình xây dựng các ứng dụng của riêng mình. Nếu bạn có bất kì câu hỏi hay kinh nghiệm nào hãy chia sẻ bằng comment bên dưới bài viết và đừng quên chia sẻ cho bạn bè nếu thấy hữu ích.
Happy coding. Stay tuned.
P/s: Source code example các bạn có thể download tại đây: WebAPIDemo

About Học viện đào tạo trực tuyến

Xinh chào bạn. Tôi là Đinh Anh Tuấn - Thạc sĩ CNTT. Email: dinhanhtuan68@gmail.com .
- Nhận đào tạo trực tuyến lập trình dành cho nhà quản lý, kế toán bằng Foxpro, Access 2010, Excel, Macro Excel, Macro Word, chứng chỉ MOS cao cấp, IC3, tiếng anh, phần mềm, phần cứng .
- Nhận thiết kế phần mềm quản lý, Web, Web ứng dụng, quản lý, bán hàng,... Nhận Thiết kế bài giảng điện tử, số hóa tài liệu...
HỌC VIỆN ĐÀO TẠO TRỰC TUYẾN:TẬN TÂM-CHẤT LƯỢNG.
«
Next
Bài đăng Mới hơn
»
Previous
Bài đăng Cũ hơn