LTHD 03 RESTful Web Service

Embed Size (px)

Citation preview

Khoa Cng ngh thng tin B mn Cng ngh phn mm

Nguyn Huy [email protected]

Hiu c cch thc hot ng ca WWW trn HTTP Hiu c ngun gc v ngha ca REST web service ng dng to REST web service bng Visual Studio

29/04/2012

Cc cng ngh lp trnh hin i

2

Giao thc HTTP nh ngha RESTV d REST Bi tp Ti liu tham kho29/04/2012 Cc cng ngh lp trnh hin i 3

WWWWorld wide web L h thng cc ti liu lin kt vi nhau thng qua internet

HTTPHypertext Transfer Protocol L giao thc mng cho php cc h thng thng tin phn phi, v cng tc vi nhau. HTTP l nn tng giao tip d liu cho WWW (1990)Sir Tim Berners-Lee29/04/2012 Cc cng ngh lp trnh hin i 4

HTTP hot ng trn c ch giao thc request response trong m hnh in ton client server

29/04/2012

Cc cng ngh lp trnh hin i

5

URI (Uniform Resource Identifier)L mt chui xc nh mt ti nguyn trn internet

URL (Uniform Resource Locator)L mt URI cho bit s tn ti ca mt ti nguyn v cch thc nhn ti nguyn

URN (Uniform Resource Name)L mt URI nhm xc nh ti nguyn bng tn v c lp vi v tr lu tr

29/04/2012

Cc cng ngh lp trnh hin i

6

2xx Success200 OK

3xx Redirection304 Not Modified

4xx Client Error403 Forbidden 404 Not Found

5xx Server Error503 Service Unavailable 504 Gateway Timeout29/04/2012 Cc cng ngh lp trnh hin i 7

GET http://www.fit.hcmus.edu.vn/vn/ HTTP/1.1 Accept: application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */* Accept-Language: vi-VN User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; GTB6.5; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; OfficeLiveConnector.1.5; OfficeLivePatch.1.3; InfoPath.3; AskTbGGSV5/5.8.0.12217) chromeframe/6.0.472.63 Accept-Encoding: gzip, deflate Connection: Keep-Alive Host: www.fit.hcmus.edu.vn Cookie: .ASPXANONYMOUS=MG6LCiuSywEkAAAANTA2ZWNiYTAtYThiNy00MDA1LTkyN jUtYTllYzAxNTA3MTU10

29/04/2012

Cc cng ngh lp trnh hin i

8

HTTP/1.0 200 OK Cache-Control: private Content-Type: text/html; charset=utf-8 Server: Microsoft-IIS/7.0 X-AspNet-Version: 2.0.50727 Set-Cookie: DotNetNukeAnonymous=7db3c001-c407-4adb-a60f-053b5dc76dc2; expires=Thu, 30-Sep-2010 03:12:33 GMT; path=/; HttpOnly Set-Cookie: language=vi-VN; path=/; HttpOnly X-Powered-By: ASP.NET Date: Thu, 30 Sep 2010 02:52:33 GMT Content-Length: 24404 X-Cache: MISS from vweb.hcmuns.edu.vn Via: 1.0 vweb.hcmuns.edu.vn:80 (squid/2.6.STABLE16) Connection: keep-alive // Ni dung trang web

29/04/2012

Cc cng ngh lp trnh hin i

9

HTTP nh ngha chnh phng thc chnh:HEAD GET POST

PUT

DELETE

TRACE

OPTIONS

CONNECT

PATCH

29/04/2012

Cc cng ngh lp trnh hin i

10

GETDng ti mt biu din ca ti nguyn c s dng nhiu nht Biu din ca ti nguyn c th bao gm HTML, JPG, XML,

HEADTng t nh GET thay v ti ton b th hin th ch ti HTTP Header Dng kim tra thay i khi mun ti li ti nguyn c kch thc ln

DELETEDng xa ti nguyn30/04/2012 Cc cng ngh lp trnh hin i 11

Dng lu mt biu din vo mt ti nguyn ng ti mt tp tin vo mt v tr xc nh trn website Nu PUT thc hin hai ln th ln sau s ln ln trc V d: ng hnh i din cho profile c nhn

30/04/2012

Cc cng ngh lp trnh hin i

12

To mt ti nguyn tng t nh PUT, nhng server s quyt nh cch lu tr thay v client nh PUT V d: To mt bi vit trn blog ng ti mt tp tin vo mt v tr xc nh trn website

30/04/2012

Cc cng ngh lp trnh hin i

13

Giao thc HTTP nh ngha REST V d REST Bi tp Ti liu tham kho nh gi kt qu Lin h

30/04/2012

Cc cng ngh lp trnh hin i

14

1

190010002

Bm s3

SOAP30/04/2012 Cc cng ngh lp trnh hin i

4

15

090912345

090912346

090912347

REST30/04/2012 Cc cng ngh lp trnh hin i

090912348

16

REST (Representational State Transfer) l mt kiu kin trc phn mm cho cc h thng phn tn siu truyn thng nh l WWW (2000)

Roy Fielding

30/04/2012

Cc cng ngh lp trnh hin i

17

Vo trang http://courses.fit.hcmus.edu.vn/ccnlthd.html Ebook

Ngi dng

Trnh duyt

CCNLTHD

Demo

Bm vo din n Din n30/04/2012 Cc cng ngh lp trnh hin i 18

Web l mt tp hp cc ti nguyn V d trang web mn hc c nhiu mn hc trong c mn CNNLTHD (ti nguyn) http://courses.fit.hcmus.edu.vn/ccnlthd.html Khi ngi dng vo lin kt trn s nhn mt biu din (representation) ca ti nguyn (ccnlthd.html) Biu din ny t trnh duyt vo mt trng thi (state) Biu din ny bao gm nhiu lin kt n cc ti nguyn khc (ebook, slide, din n, ) Khi ngi dng kch vo mt trong cc lin kt ny Ngi dng nhn c biu din tng ng ca ti nguyn Trnh duyt li mt trng thi khc Nh vy trnh duyt chuyn i (transfer) trng thi ng vi mi ti nguyn30/04/2012 Cc cng ngh lp trnh hin i 19

Clientserver

Uniform interface

Stateless

RESTCode on demand (optional) Cache

Layered system

30/04/2012

Cc cng ngh lp trnh hin i

20

Phn tch giao din ca client ra khi d liu Cho php mi thnh phn pht trin c lp H tr a nn tng

30/04/2012

Cc cng ngh lp trnh hin i

21

Mi yu cu t client phi c thng tin cn thit server c th hiu c m khng cn phi lu tr thm thng tin no trc .

30/04/2012

Cc cng ngh lp trnh hin i

22

D liu phn hi t yu cu c gn nhn r rng hoc ngm nh rng c th c dng li hoc khng c dng li

30/04/2012

Cc cng ngh lp trnh hin i

23

Tt c ti nguyn c truy cp thng qua mt interface thng nht (HTTP GET, PUT, POST, DELETE, )

30/04/2012

Cc cng ngh lp trnh hin i

24

Cho php thm cc lp (proxy server, cache server, gateway, ) gia cc thnh phn trn h thng m cc thnh phn khng bit c ang tng tc qua nhng lp trung gian no

30/04/2012

Cc cng ngh lp trnh hin i

25

Cho php client m rng chc nng bng cch ti m ngun theo dng applet hoc script

30/04/2012

Cc cng ngh lp trnh hin i

26

L mt web service n gin s dng HTTP v tnh cht ca REST. L mt tp ti nguyn cc thnh phn c nh ngha:URI gc cho web service MIME type h tr bi web service Tp hnh ng h tr bi web service s dng HTTP method (GET, POST, PUT, DELETE)

30/04/2012

Cc cng ngh lp trnh hin i

27

URI tp hphttp://hcmus.edu/ CCNLTHD

Lit k URI v thng tin chi tit ca cc thnh phn Nhn biu din ca mt phn t theo mt dng nh dng trn Internet

To mt mu tin Thay th mi trong tp hp. ton b tp URL ca mu tin Xa ton b hp bng tp c t ng to v tp hp hp khc thng c tr v cho ngi toCp nht phn t trong tp hp. Nu cha c th thm vo Phn t ang xt phi c cha mt tp hp v tin Xa phn t hnh thm mt ang xt phn t vo tp hp 28

URI phn thttp://hcmus.edu/ CNNLTHD/23

30/04/2012

Cc cng ngh lp trnh hin i

Xem hc sinh Thm hc sinh

www.mg.com/service.asmx?op=GetStudent

GET www.mg.com/service/student/081233

www.mg.com/service.asmx?op=InsertStudent

POST www.mg.com/service/student/class

Xa hc sinhSa hc sinh

www.mg.com/service.asmx?op=DeleteStudent

DELETE www.mg.com/service/student/081233

www.mg.com/service.asmx?op=UpdateStudent

PUT www.mg.com/service/student/081233

Danh sch lp

www.mg.com/service.asmx?op=GetClass

GET www.mg.com/service/student/class

30/04/2012

Cc cng ngh lp trnh hin i

29

REST L mt kin trc phn mm S dng cc HTTP method lm hnh ng (GET, POST, PUT, DELETE) S dng nhiu URI endpoint D liu da trn ti liu con ngi d c c nh XML, JSON, hnh nh

SOAP L mt giao thc T nh ngha cc hnh ng v ch yu s dng HTTP POST S dng mt URI enpoint Strong typing v bc trong XML

Bo mt da trn HTTP

T xy dng cc cch thc bo mt

30/04/2012

Cc cng ngh lp trnh hin i

30

30/04/2012

Cc cng ngh lp trnh hin i

31

Xy dng ng dng qun l sinh vin cho php lu tr thng tin sinh vin, bao gm:H tn im tch ly Hnh i din

ng dng bao gm cc chc nng sau:Lit k danh sch sinh vin Thm sinh vin Xa sinh vin Sa sinh vin

Kin trc ng dng bao gm hai thnh phn:

Kt ni CSDL v cung cp Restful Web service Giao din gi cc Web service thnh phn trn thc hin cc chc nng ca ngi dng.Lp trnh web 1 32

30/04/2012