Cách tạo https://mindovermetal.org web api service dùng cho mobile app

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

5

(100%) 3 vote[s]( 100 % ) vote [ s ]

Mở đầu

Trong những bài viết trước những bạn đã biết cách tạo và sử dụng wcf rest service trên ứng dụng mobile, đơn cử là ứng dụng windows phone 8.1. Nếu bạn chưa xem thì hoàn toàn có thể xem tại đây :WCF REST Service là một công nghệ tiên tiến tương đối văn minh nhưng nó vẫn chưa phải là công nghệ RESTfull không thiếu vì chỉ tương hỗ GET / POST. Trong bài viết này tất cả chúng ta sẽ cùng đi khám phá công nghệ tiên tiến mới nhất của Microsoft lúc bấy giờ trợ giúp việc kiến thiết xây dựng những service dành cho những ứng dụng mobile, đó chính là asp.net web api .

ASP.NET Web API là gì?

Nói một cách đơn thuần, Web API là API trên nền web ( http ) và ASP.NET Web API chính là framework giúp tất cả chúng ta tạo ra những api này. Web API là những service được kiến thiết xây dựng dựa trên http sử dụng quy mô 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 những 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

Chi tiết sự khác nhau giữa những công nghệ tiên tiến kiến thiết xây dựng service trên Microsoft. NET Framework những bạn hoàn toàn có thể xem cụ thể qua bài viết :Chúng ta đã hiểu qua về ASP.NET Web API, giờ đây tất cả chúng ta sẽ cùng bắt tay vào tạo thử những 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ướiTạo project ASP.NETTạo project Web API
  2. 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:

    • SQL Server 2008 R2 Express SP2
    • Database Northwind

    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 tất cả chúng ta chọn bảng Customers để thao tác và click Finish .

    Entity Framework Choose Table

  3. Đế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 tất cả chúng ta đã biết cách tạo ra những Web API service giờ đây tất cả chúng ta hoàn toàn có thể kiểm tra những 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 FiddlerRESTClient để 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://mindovermetal.org/su-dung-fiddler-test-web-service/

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

Qua hai phần trên tất cả chúng ta đã biết cách tạo ra và kiểm tra những Web API Service nhưng tất cả 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 vấn đáp rất đơn thuần vì Web API đã tương hỗ sẵn tất cả 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 pháp Register và thử kiểm tra lại api GetCustomers trên browser ta sẽ thấy service giờ chỉ trả về JSON

1

config.Formatters.Remove(config.Formatters.XmlFormatter);

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 vần âm đầu thì hoàn toàn có thể thêm config sau vào Register

123

var

json

Xem thêm: Tiểu luận Lịch sử nghệ thuật

=config.Formatters.JsonFormatter;

json. SerializerSettings. PreserveReferencesHandling= Newtonsoft.Json. PreserveReferencesHandling. Objects;

json. SerializerSettings. ContractResolver = newCamelCasePropertyNames ContractResolver();

Web API Browser Test Camel Case JSON

Kết luận

Trong bài viết này tôi đã hướng dẫn những bạn phương pháp tạo ra những Web API Service để hoàn toàn có thể sử dụng trên những ứng dụng web ( qua JavaScript ) hoặc ứng dụng mobile như iOS, Android, Windows Phone … Web API là công nghệ tiên tiến mới nhất của Microsoft trong việc thiết kế xây dựng những service, việc tạo những service cũng đơn thuần hơn rất nhiều vì không còn phải thông số kỹ thuật phức tạp như WCF. Hơn thế nữa Web API là một công nghệ tiên tiến RESTfull nó tương hỗ tổng thể những phương pháp : GET / POST / PUT / DELETE tài liệu nên nếu bạn muốn thiết kế xây dựng những 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 những bài viết sau tất cả chúng ta sẽ cùng tìm hiểu và khám phá những phương pháp kiến thiết xây dựng service khác trên công nghệ tiên tiến. NET cũng như cách kiểm tra những service này bằng những tool như Fiddler, RESTClient trước khi bắt tay thiết kế xây dựng những ứng dụng client như desktop, mobile .Hy vọng bài viết này sẽ giúp ích cho những bạn trong quy trình kiến thiết xây dựng những ứ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 tay nghề nào hãy san sẻ bằng comment bên dưới bài viết và đừng quên san sẻ cho bạn hữu nếu thấy hữu dụng .Happy coding. Stay tuned .

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

Like this:

Like

Loading …

5/5 - (2 votes)
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments