Real-World RESTful Service Development Problems and Solutions
LTHD 03 RESTful Web Service
Transcript of LTHD 03 RESTful Web Service
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