RESTx: Rest for the rest of us
Ken Yagen Silicon Valley Code Camp, October, 2010
Agenda
The Programmable Web What is $emo %&ilding a simple component oadmap '&estions ( )ore in*ormation !ST"#
The Programmable Web
eso&rces
)&st ha+e a , -
.ddressability
/ / 0ame them &sing , -s 1i+e them str&ct&re 2 http3((4445rest"demo5org(reso&rce(sales(2006('6
epresentations
eso&rces s&pport di**erent representations 78)9, :SO0, ;T)9, SV1, <=
,ni*orm -nter*ace
/ ;TTP 71!T, ;!.$, P,T, $!9!T!, POST=
Statelessness, Connectedness %&ilding %loc>s 7;TTP, , -, 8)9, :SO0=
Examples of RESTful services
http3((4445*oo5com(sales(2010 http3((4445*oo5com(sales(2010(?@ http3((4445*oo5com(4eather(san*rancisco(c&rrent http3((4445*oo5com(4eather(san*rancisco(tomorro4 http3((4445*oo5com(ran>ings(college(*ootball(bcs http3((4445*oo5com(ran>ings(college(*ootball(bcs#schoolAstan*ord http3((4445*oo5com(search#?&eryArest"
.ll contents Copyright B 200C, )&leSo*t -nc5
What is RESTx?
The simplest 4ay to create
!ST*&l 4eb ser+ices
!nco&rages and enables !ST*&l concepts ;ides &nderlying implementation details !ST" reso&rces are sel* doc&menting and disco+erable
!ST" is a ser+er, not a *rame4or>
Create rich data ser+ices by integrating di**erent data so&rces C&stomiDed reso&rces *rom clo&d ser+ices and internal databases $ata 9ayer *or :a+aScript application Wrap legacy scripts into re&sable components
,se Cases
What is RESTx?
.ll contents Copyright B 200C, )&leSo*t -nc5
irst a !emo
.ll contents Copyright B 200C, )&leSo*t -nc5
"uilding a simple component
E Create Component
5(rest"ctl component create )yTestComponent F Ga+a H python H Ga+ascript I
E .nnotate -t
JComponent-n*o7name A KSomeSampleComponentK, description A KOne line description o* the componentK, doc A K9onger description te"t, possibly m<i2line, goes hereL=
E -mplement ser+ice method E Compile it 7:a+a only=
5(rest"ctl component compile
E Start Ser+er
5(rest"ctl start
.ll contents Copyright B 200C, )&leSo*t -nc5
Roadmap
E http3((4445rest"5org(rest"2roadmap5html E ;ighlights
E E E E Pipelines &by, 1roo+y, P;P S&pport i%eans S&pport Version Control, Caching
.ll contents Copyright B 200C, )&leSo*t -nc5
Wh# RESTx?
E P&blishing $ata as
E E E
!ST*&l reso&rces
.ny piece o* interesting data can be a reso&rce ,sers can constr&ct their o4n reso&rces eso&rces are accessible *rom an 4eb , 9
E Sel*2doc&menting and bro4se2able .P-s are po4er*&l E .ccessible *or less2s>illed de+elopers, di**erent lang&age s>ills
E :a+a, Python, :a+aScript
E )a>es it easier to de+elop 4eb 250 and mobile apps that re?&ire access to e"ternal reso&rces
.ll contents Copyright B 200C, )&leSo*t -nc5
$%
&ore 'nformation
Website3 http3((4445rest"5org $o4nload3 http3((4445rest"5org(?&ic>2start2g&ide5html So&rce Code3 git clone git3((gith&b5com(m&leso*t( !ST"5git Online $emo3 http3((rest"demo5m&leso*t5org(static(demo(start5html %log3 http3((blogs5m&leso*t5org Mor&ms3 http3((4445rest"5org(comm&nity5html )y !mail3 >en5yagenJm&leso*t5com
(uestions?
.ll contents Copyright B 200C, )&leSo*t -nc5