Trường ĐH Khoa Học Tự Nhiên Tp. Hồ Chí Minh

TRUNG TÂM TIN HỌC

Bài 2: Các công nghệ dùng để xây dựng Web Service cho ứng dụng di động – Phần 1

Ngành Mạng & Thiết bị di động

www.t3h.vn

2015

N i dung

1. Tìm hi u LinQ

• T ng quan

ườ

• Môi tr

ỗ ợ ng h  tr  LinQ

• Cách truy v n:ấ

ố ượ

 Dùng LinQ đ c danh sách đ i t ọ

ng và th c hi n truy v n

ữ ệ

 Dùng LinQ đ c d  li u XML và th c hi n truy v n ấ

1. Hướng dẫn xây dựng Web Service dùng API RESTful Service

Xây dựng và triển khai Web Service cho ứng dụng di động

2

1.1 T ng quan

̀ ̀

́ ́ ̀ ̉

́

ộ ậ ở ộ ầ ợ t  các  câu

ữ ệ ữ ậ ặ ấ ộ LinQ la  gi ? •LINQ la  tên viê t tă t cua Language Integrated Query (ngôn ng   ̃ ư truy vâ n thông minh). •Là  m t  t p  h p  các  thành  ph n  m   r ng  cho  phép  vi ế ư truy  v n  d   li u  ngay  trong  m t ngôn ng   l p  trình,  nh   C#  ho c

ỗ ợ ậ ̣

ố ượ ướ

́ ́ ̉ ̉

Xây dựng và triển khai Web Service cho ứng dụng di động

ể ể ế ệ VB.NET.  •Là môt mô hình ORM (Object­relational mapping) h  tr  l p trình  ẽ ạ CSDL h ng m nh m . ng đ i t •Cu  pha p đ n gian, dê  hiêu. ̃ ơ •Có th  hi n th , binding tr c ti p lên các giao di n . ự ị

3

1.1 T ng quan

̀ ̀ LinQ la  gi ?

̀ ́ ̀ ́ ́ ̣ ự ươ ̀ ng tri nh ma  no  giu p

́ ̃ ̀ ̃ ̃ ơ ̣ ̉ ́ ́ Chu  y : •LINQ không la m tăng tô c đô th c thi ch ́ ơ viê t ma  lênh nhanh h n va  dê  quan ly  ma  h n.

́ ́ ́ ́ ợ ơ ̉ ̉

•Co  thê kê t h p LINQ v i ADO.Net đê truy vâ n.

Xây dựng và triển khai Web Service cho ứng dụng di động

4

1.1 T ng quan

Xây dựng và triển khai Web Service cho ứng dụng di động

̀ ́ ́ Mô hi nh kiê n tru c LinQ

5

̉

1.1 Tông quan

́ ́ ̣

́ ́ ̉ ̉

Xây dựng và triển khai Web Service cho ứng dụng di động

Co  ca c loai LinQ sau: •LINQ To Objects. •LINQ To XML (XLINQ). ́ ́ ơ ợ        Co  thê kê t h p v i ADO.Net đê truy vâ n:  •LINQ To Dataset. •LINQ To SQL (DLINQ). •LINQ To Entities.

6

ườ

1.2 Môi tr

ỗ ợ ng h  tr  LinQ

́ ̃ ̀ ̀ ư ợ ̣

́ ̀ ̃ ́ ợ ượ ử ̣ ̣ ̉ ̣ ̣

• Co  nhiê u công cu hô  tr  LinQ, nh ng Visual Studio la   công  c s  dung phô biê n va  manh me  nhâ t hiên nay

̃ cu hô  tr  đ

ở Visual Studio 2008 tr  đi).

ượ ợ trên n n t ng ̃ c hô  tr ề ả  .NET 3.5 tr  lênở .

Xây dựng và triển khai Web Service cho ứng dụng di động

́ ư ̣ ̉ ̣ System.LinQ. ̀ư (t • LinQ đ • Đê s  dung LINQ phai khai ba o th  viên  ̉ ử

7

1.3 Cách truy v nấ

́ ́ ̉

̣ LINQ co  2 kiêu truy vâ n LinQ: •Lamda (Method) Syntax ́ Vi  du:

́ ̣ var doDaiToiDas = dodais.Where( d => d.length > 10); •Query (Comprehension) Syntax         Vi  du:

Xây dựng và triển khai Web Service cho ứng dụng di động

var doDaiToiDas = from  d in dodais where d.length > 10;

8

1.3 Cách truy v nấ

́

́

ơ

ư

̉

Các biểu thức truy vấn (Query Expressions)  cua  LINQ  v i  ca c  t

̀

̀

́

́

́

ươ

ự

ư

kho a Select, From, Where va  OrderBy t

ng t

́  nh  cu  pha p truy vâ n

cua SQL.

́

̉

Vi  du:

̣

// Tạo một mảng kiểu int chứa các điểm số

int[] diems = new int[] { 7, 8, 10, 9};

// Sử dụng cú pháp truy vấn của LINQ để lấy danh sách

điểm trên 8 điểm

IEnumerable diemQuery = from diem in diems where diem > 80

select diem ;

// Xử lý hiển thị ra màn hình

foreach (int i in diemQuery) {

Console.Write(i + " ");

Xây dựng và triển khai Web Service cho ứng dụng di động

9

} Console.ReadLine();

1.3 Cách truy v nấ

́ ́ ở ư ̣ ) ng th c truy vâ n m  rông (Extension Methods

́ ̀ ́ ́ ́ ̃ ươ ̉ ượ ư ơ ng th c na y chi đ c khai ba o trong ca c l p ti nh

́ ́ ́ ượ ử ư ̣ ̉ ̣ ̉

Query

́ ươ Ca c ph •Ca c ph ́ (static class) •Đ c  s   dung  đê  biên  dich  ca c  biêu  th c  truy  vâ n  (

̀ ́ ́ ́ ươ ư ̣

Expressions) tha nh ca c ph

̀ ng th c goi truyê n thô ng (object­

Xây dựng và triển khai Web Service cho ứng dụng di động

oriented).

10

1.3 Cách truy v nấ

́ ử ) truy vâ n (Query Operators

́ ́ ́ ử ̉ ̣ ơ  truy vâ n c  ban sau: Filtering (loc), Join

́ ́ ́ ́ ́ ́ Ca c toa n t •LINQ co  ca c toa n t ́ (nô i), ́ Projection  (phe p chiê u), Sorting  (să p xê p) , Grouping

́ ̉ (gom  nho m), Conversions  (chuyên  đôi), ̉ Concatenation  (ghe p ́

́ ợ ́ ử ượ ̣ nô i), đinh  l ng)  , ́ Aggregation  (kê t  h p), Quantifier  (toa n  t

̀ ̣ Partition (phân hoach), Generation , Set , Equality (bă ng nhau),

Xây dựng và triển khai Web Service cho ứng dụng di động

Element.

11

1.3 Cách truy v nấ

́ ử ) truy vâ n (Query Operators

̣ Filtering Operators) loc (

ư ̣ ́ ́ Ca c toa n t •Toa n t ́ ử ử S  dung t ́ ̀  kho a: where

̀ ̀ ́ ́ ̉ ̣ ̣ Du ng đê loc ca c gia  tri theo yêu câ u.

string[] cacTu= { “toi", “yeu", “lap", “trinh"};

IEnumerable query = from tu in cacTu where

tu.Length == 3

select tu;

Xây dựng và triển khai Web Service cho ứng dụng di động

̣ ́ Vi  du:

12

1.3 Cách truy v nấ

́ ử ) truy vâ n (Query Operators

Join Operators): ử ́  nô i (

́ ́ Ca c toa n t •Toa n t ́ Cú pháp sử dụng:

 ́ ử Toa n t Join:

join … in … on … equals …

 ́ ử Toa n t GoupJoin:

Xây dựng và triển khai Web Service cho ứng dụng di động

join … in … on … equals … into …

13

1.3 Cách truy v nấ

́ ử ) truy vâ n (Query Operators

Join Operators): ử ́  nô i (

́ ́ Ca c toa n t •Toa n t ́  ́ ́ ̣ ử ử ̣ Join:

join p in phongbans on

nv.PhongBanId equals d.PhongBanId

select new

{

TenNhanVien = nv.TenNhanVien,

TenPhongBan = d.TenPB

});

Xây dựng và triển khai Web Service cho ứng dụng di động

Vi  du s  dung toa n t var danhSachNV = (from nv in nhanviens

14

1.3 Cách truy v nấ

́ ́ ử ) truy vâ n (Query Operators

́ ́

ử ̣ ́ Ca c toa n t •Phe p chiê u (Projection Operations) ́ ̀ ư  kho a: S  dung t select

́ ̣ Co  2 dang: select va  ̀ SelectMany

́ ̣ ử ̣

var query = from tu in dsCacTu select tu.Substring(0, 1);

Vi  du s  dung select: List dsCacTu = new List() { “chu", “meo", “con" };

List dsCacCumTu = new List() { “chu meo con", “chay

lon ton trong san" };

var query = from cumTu in dsCacCumTu from tu in

cumTu.Split(' ')

Xây dựng và triển khai Web Service cho ứng dụng di động

́ ̣ ử ̣ Vi  du s  dung SelectMany:

15

select tu;

1.3 Cách truy v nấ

́ ́ ́ ử ) truy vâ n (Query Operators

́ ́ Ca c toa n t •Să p xê p (Sorting Operators )

́ ̣ Co  5 loai:

 OrderBy

 OrderByDescending: orderby ... descending

 ThenBy: orderby …, …

 ThenByDescending: orderby …, … descending

Xây dựng và triển khai Web Service cho ứng dụng di động

 Reverse

16

1.3 Cách truy v nấ

́ ́ ́ ử ) truy vâ n (Query Operators

́ ́

int[] num = { -20, 12, 6, 10, 0, -3, 1 };

̣ Ca c toa n t •Să p xê p (Sorting Operators ) ́ Vi  du:

// Sắp xếp dãy số trên thứ tự tăng dần

var daySo = from n in num orderby n select n;

// Sắp xếp dãy số trên theo thứ tự giảm dần

var daySoTangDan = from n in num orderby n descending

select n;

Xây dựng và triển khai Web Service cho ứng dụng di động

17

1.3 Cách truy v nấ

́ ́ ́ ử ) truy vâ n (Query Operators

́ Ca c toa n t •Gom nho m (Grouping Operators )

 GroupBy

group … by

Hoặc:

group … by … into …

Xây dựng và triển khai Web Service cho ứng dụng di động

 ToLookup

18

1.3 Cách truy v nấ

́ ́ ) truy vâ n (Query Operators

́ ử Ca c toa n t •Conversions

 AsEnumerable

 AsQueryable

 Cast

 OfType

 ToArray

 ToDictionary

 ToList

Xây dựng và triển khai Web Service cho ứng dụng di động

 ToLookup

19

1.3 Cách truy v nấ

́ ́ ử ) truy vâ n (Query Operators

Xây dựng và triển khai Web Service cho ứng dụng di động

́ Ca c toa n t •Concatenation  Concat

20

1.3 Cách truy v nấ

́ ́ ) truy vâ n (Query Operators

́ ử Ca c toa n t •Aggregation

 Aggregate

 Average

 Count

 LonCount

 Max

 Min

Xây dựng và triển khai Web Service cho ứng dụng di động

 Sum

21

1.3 Cách truy v nấ

́ ́ ) truy vâ n (Query Operators

́ ử Ca c toa n t •Quantifier Operations

 All

 Any

Xây dựng và triển khai Web Service cho ứng dụng di động

 Contains

22

1.3 Cách truy v nấ

́ ́ ử ) truy vâ n (Query Operators

́ Ca c toa n t •Partition Operators

 Skip

 SkipWhile

 Take

Xây dựng và triển khai Web Service cho ứng dụng di động

 TakeWhile

23

1.3 Cách truy v nấ

́ ́ ́ ) truy vâ n (Query Operators

ử Ca c toa n t •Generation Operations  DefaultIfEmpty

 Empty

 Range

Xây dựng và triển khai Web Service cho ứng dụng di động

 Repeat

24

1.3 Cách truy v nấ

́ ́ ử ) truy vâ n (Query Operators

́ Ca c toa n t •Set Operations  Distinct

 Except

 Intersect

Xây dựng và triển khai Web Service cho ứng dụng di động

 Union

25

1.3 Cách truy v nấ

́ ử ) truy vâ n (Query Operators

́ ́ Ca c toa n t •Equality

Xây dựng và triển khai Web Service cho ứng dụng di động

 SequenceEqual

26

1.3 Cách truy v nấ

́ ́ ử ) truy vâ n (Query Operators

 ElementAtOrDefault

 First

 FirstOrDefault

 Last

 LastOrDefault

 Single

 SingleOrDefault

 DefaultIfEmpty

Xây dựng và triển khai Web Service cho ứng dụng di động

́ Ca c toa n t •Element Operators  ElementAt

27

1.3 Cách truy v nấ

̀ ử ụ ố ớ ố ượ ng  Collection  mà  đã

ự ặ c th c thi giao di n IEnumerable ho c IEnumerable

ấ ủ ử ụ ườ ả ơ ợ ệ ớ ng h p s  d ng đ n gi n nh t c a LINQ khi làm vi c v i

Xây dựng và triển khai Web Service cho ứng dụng di động

LINQ To Objects •La   cách  s   d ng  LINQ  đ i  v i  các  đ i  t ệ ượ đ •Là tr ữ ệ d  li u.

28

1.3 Cách truy v nấ

LINQ To Objects

́ Vi  du:

namespace LINQtoObjects{

class HocVien{

static void Main(string[] args){ ́

̀

string[] tenHocViens = { “Ti ", “Te o", “Bin", “Bo", “Bom" };

var list = from t in tenHocViens select t;

StringBuilder sb = new StringBuilder();

foreach (string s in list) {

sb.Append(s + Environment.NewLine);

}

Console.WriteLine(sb.ToString());

Console.ReadLine();

}

}

}

Xây dựng và triển khai Web Service cho ứng dụng di động

̣

29

1.3 Cách truy v nấ

ử ụ ấ ớ

́ ́ ̃ ươ ư ợ ng  th c  hô   tr   sau:  Xattribute,  XCData,

LINQ To XML • S  d ng LINQ v i m c đích truy v n file XML. ụ •  Co   ca c  ph ́ Xcomment, Xcontainer, Xdeclaration, Xdocument, XDocumentType,

Xelement, Xname, Xnamespace, Xnode,

XNodeDocumentOrderComparer, XNodeEqualityComparer,

Xobject, XObjectChange, XObjectChangeEventArgs,

Xây dựng và triển khai Web Service cho ứng dụng di động

XObjectEventHandler, XProcessingInstruction, Xtext.

30

1.3 Cách truy v nấ

LINQ To XML

́ ̣ ử ̣ ̉ ̣ ̣ Vi  du s  dung LINQ đê đoc tâp tin XML:

́ ́ ư ̣ //Khai ba o ca c th  viên

using System;

using System.Collections.Generic;

using System.Linq;

Xây dựng và triển khai Web Service cho ứng dụng di động

using System.Xml.Linq;

31

1.3 Cách truy v nấ

́

̣ ử

LINQ To XML

Vi  du s  dung LINQ đê đoc tâp tin XML:

namespace LINQtoXML {

class MinhHoaDocXML {

static void Main(string[] args) {

string myXML = @" Account

SalesPre-

Sales

Marketing

";

XDocument xdoc = new XDocument();

xdoc = XDocument.Parse(myXML);

var result = xdoc.Element("Departments").Descendants();

foreach (XElement item in result) {

Xây dựng và triển khai Web Service cho ứng dụng di động

̣ ̉ ̣ ̣

32

Console.WriteLine("Department Name - " + item.Value); } } }}

N i dung

1. Tìm hi u LinQ

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

ơ ả ệ ớ ề i thi u c  b n v  RESTful Service

ể ạ ắ

2. Hướng dẫn xây dựng Web Service dùng API RESTful Service • Gi • Gi • Các nguyên t c c  b n đ  t o ra RESTful Service ơ ả • Xây d ng Web Service

Xây dựng và triển khai Web Service cho ứng dụng di động

33

2. 1 Gi

i thi u v  ASP.NET Web API

ASP.NET Web API là gì?

ạ Là framework giúp chúng ta t o ra các Web API ­   API trên n n ề

web (HTTP).

ượ ự ̣ ̣ Web API là các dich vu Web (Web 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

Xây dựng và triển khai Web Service cho ứng dụng di động

MVC).

34

2. 1 Gi

i thi u v  ASP.NET Web API

ở ̣ ̉

ệ ấ ơ ự ả , nhanh chóng

̃ ể ượ ở ấ ở Open  Source)  và  có  th   đ c  s   d ng  b i  b t  kì  client

Đăc điêm Web API (.NET 4.0 tr  lên) •Giúp cho vi c xây d ng các HTTP service r t đ n gi n •Ma   nguô n  m   ( ̀ ử ụ ỗ ợ nào h  tr  XML, JSON .

ỗ ợ ầ ủ ầ

•H   tr   đ y  đ   các  thành  ph n  HTTP:  URI,  request/response  headers,

ụ ặ

́ ́ ớ ạ ế ị ưở ế ̣ t b  có băng thông gi ng cho các thi i h n nh ư ca c thiê t bi

̣

Xây dựng và triển khai Web Service cho ứng dụng di động

ữ ệ ữ ệ ể ể ặ ạ ộ ị caching, versioning, content formats. •Có th  host trong  ng d ng ho c trên IIS ứ ể . •Ki n trúc lý t di đông. •Đ nh d ng d  li u có th  là JSON, XML ho c m t ki u d  li u b t k ấ ỳ.

35

2. 1 Gi

i thi u v  ASP.NET Web API

ở ̣ ̉

ị ớ ặ ạ ự

ộ ẫ ự

ứ ụ ề ộ

̃

ấ ồ ỗ ợ ườ ộ ng h  tr  cho các ph ng pháp b t đ ng b

Xây dựng và triển khai Web Service cho ứng dụng di động

ủ ầ Đăc điêm Web API (.NET 4.0 tr  lên) •Làm m i và hi n đ i hóa các m u d  án m c đ nh ệ ẫ •M u d  án trên đi n tho i di đ ng ạ ệ •Nhi u tính năng m i đ  h  tr  các  ng d ng di đ ng ớ ể ỗ ợ •Tùy ch nh sinh ma  (code). ỉ •Tăng c ươ •Đ c danh sách đ y đ  tính năng trong các ghi chú phát hành ọ

36

2. 1 Gi

i thi u v  ASP.NET Web API

̉ ̉

́ ̀ ́ ơ ̉

́ ̣

̀ ̃ ợ ̉

́ ̃ ̀ ư ợ ̉

Ư u điêm  cua Web API •Câ u hi nh đ n gian h n nhiê u so v i WCF. ̀ ơ ơ •Hiêu suâ t (performance) cao. •Hô  tr  RESTfull đâ y đu. •Hô   tr   đâ y  đu  ca c  tha nh  phâ n  MVC  nh :  routing,  controller,  ̀ ̀ action  result,  filter,  model    binder,  IoC  container,  dependency

injection, unit test, …

̀ ̃ ở

•Ma  nguô n m  (Open source).

Xây dựng và triển khai Web Service cho ứng dụng di động

37

ơ ả

2. 2 Gi

ề i thi u c  b n v  RESTful Service

̀ ̀ ́ ́ ­ ơ ̣ ̣ ̣ ̉ ̣ ̉ ử La  môt dich vu web đ n gian s  dung HTTP va  ti nh châ t cua

REST.

ắ ủ ế ế ơ ả 4 nguyên t c thi t k  c  b n sau:

ứ ươ ộ ng th c HTTP m t cách rõ r àng

ư ụ ị ấ

ể ổ No  ́ tuân th  theo  ­ • S  d ng các ph ử ụ • Phi tr ng thái • Hi n th  c u trúc th  m c nh  URls ể ư • Chuy n  đ i  JavaScript  Object  Notation  (JSON)  và  XML  ho c  ặ

Xây dựng và triển khai Web Service cho ứng dụng di động

ả c  hai.

38

ơ ả

ể ạ

2. 3 Nguyên t c c  b n đ  t o ra RESTful  Service

ắ ế ế ơ ả t k  c  b n sau:

ử ụ ươ ứ ộ ng th c HTTP m t cách rõ r àng

ế ậ ữ ạ ậ ạ ậ ọ ộ 4 nguyên t c thi •S  d ng các ph Thi t  l p  m t  ánh  x   1­1  gi a  các  hành  đ ng ộ :  t o,  đ c,  c p  nh t  và

ậ ươ ứ xoá (CRUD) các quá trình v n hành và các ph ng th c HTTP :

ạ ộ ủ POST ­ T o m t tài nguyên trên máy ch

ộ GET ­ Truy xu t m t tài nguyên ấ

ổ ạ ể ậ ậ ặ ộ PUT ­ Thay đ i tr ng thái m t tài nguyên ho c đ  c p nh t nó

Xây dựng và triển khai Web Service cho ứng dụng di động

ỷ ỏ ộ DELETE ­ Hu  b  ho c xoá m t tài nguyên ặ

39

ơ ả

ể ạ

2. 3 Nguyên t c c  b n đ  t o ra RESTful  Service

ế ế ơ ả ắ t k  c  b n sau:

̣ 4 nguyên t c thi •Phi tr ng thái ạ ́ Vi  du:

ế ế ạ Thi t k  tr ng thá i:

Xây dựng và triển khai Web Service cho ứng dụng di động

Thiết kế phi trạng thái:

40

ơ ả

ể ạ

2. 3 Nguyên t c c  b n đ  t o ra RESTful  Service

ắ ế ế ơ ả t k  c  b n sau:

ể ư ị ấ ư ụ

ở ộ

.

ữ ườ

ể ọ

ng.

ế

ườ

ng

ư ộ

ị ỉ ủ

Xây dựng và triển khai Web Service cho ứng dụng di động

4 nguyên t c thi •Hi n th  c u trúc th  m c nh  URls ấ C u trúc đ a ch  c a RESTful  service: •Gi u các đuôi tài li u m  r ng c a b n g c trong máy ch  (.jsp, .php, .asp) ả •Đ  m i th  là ch  th •Thay th  các kho ng tr ng b ng g ch chân ho c g ch n i (m t trong hai lo i). ạ ố •Tránh các chu i yêu c u. ầ •Thay  vì  s   d ng  mã  (404  Not  Found)  khi  yêu  c u  đ a  ch   cho  m t  ph n  đ ử ụ d nẫ  thi  ̀ luôn luôn cung c p m t trang m c đ nh ho c tài nguyên nh  m t ph n h i. ồ ả ặ

41

ơ ả

ể ạ

2. 3 Nguyên t c c  b n đ  t o ra RESTful  Service

ắ ế ế ơ ả t k  c  b n sau:

ổ ể ặ

4 nguyên t c thi •Chuy n đ i JavaScript Object Notation (JSON) và XML ho c c   ả hai.

́ ̀ ́ ́ ́ ̃ ́ ư ư ̣ ̉ ̣ ̉  La   môt  ban  to m  tă t  ca c  thuôc  ti nh  cua  nh ng  th   trong

̀ ̃ ́ ư ̣ ̣ mô hi nh d  liêu hê thô ng.

̃ ́ ̀ ư ư ̣ ̣ ̣ ̣ ̉ ̣ ̣  Đinh  dang  d   liêu  ma   ̀ ng  dung  va   trao  đôi  dich  vu  trong

́ ́ ́ ̀ ̀ ̀ ư ư ̉ ̣ ̉ m c đa p  ng yêu câ u/ phan hô i hoăc trong phâ n thân cua

HTTP.

́ ̀ ̃ ́ ́ ư ơ ̉ ̉ ̣  Ca c chu thê trong mô hi nh d  liêu co  liên quan v i nhau.

́ ́ ́ ̀ ̀ ́ ượ ̣ ̣ ̣ ̣  Câ u tru c dich vu sao cho no  tân dung đ c phâ n đâ u châ p

Xây dựng và triển khai Web Service cho ứng dụng di động

́ ̃ ̣ ̣ ̣ nhân HTTP co  să n bên trong – môt loai MIME

42

2. 4 Xây d ng Web Service

́ươ B c 1:

→ ở ạ ộ ̣ Kh i đông Visual Studio t o m t project ASP.NET Web Application

ọ và ch n template Web API.

́ươ B c 2:

ử ụ ạ 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.

́ươ ạ T o ra các Web API B c 3:

ươ

ứ ừ ầ .  đ u

ng th c t

t các ph

ươ

ng th c

ụ ể ạ

ể ế

́ ọ ̣ ̉ vào th  m c Controllers và ch n thêm controller.

t các service này.

t cách vi

ư ụ Nhâ p chuôt phai  •Web API 2 Controller Empty: t ự ế  vi •Web API 2 Controller with read/write actions: pha t ́ sinh các ph ế ví d  đ  b n có th  bi

Xây dựng và triển khai Web Service cho ứng dụng di động

̀ ́ươ ử ̣ ̉ Chay th  va  kiêm tra. B c 4:

43

Xây dựng và triển khai Web Service cho ứng dụng di động

44