Rest in design

59
REST IN DESIGN @diego_pacheco

description

REST workshop for design

Transcript of Rest in design

Page 1: Rest in design

REST IN DESIGN

@diego_pacheco

Page 2: Rest in design

2000

Page 3: Rest in design
Page 4: Rest in design

#FACTS• 85% of Amazon services usage is of the REST interface• Google Deprecates Their SOAP Search API

Page 5: Rest in design

Representational State Transfer

Page 6: Rest in design

Roy Fielding

Page 7: Rest in design

HTTP

Page 8: Rest in design

POX + POST + HTTP = REST

Page 9: Rest in design

POX + POST + HTTP = REST

Page 10: Rest in design

RESOURCES

Page 11: Rest in design

RESOURCES(Server thinks before

do)

Page 12: Rest in design

Nouns or Verbs ?

Page 13: Rest in design

Hypermedia

REST

Verbs + hm Media Types

Page 14: Rest in design

ROA & WOA

Page 15: Rest in design
Page 16: Rest in design
Page 17: Rest in design

Client Server

Page 18: Rest in design

Client

Server

SOCUniform InterfacePortabilityScalable

Page 19: Rest in design

Stateless

Page 20: Rest in design

Stateless

(Stateful)

Client Server

Page 21: Rest in design

Cacheable

Page 22: Rest in design

Client Server

Page 23: Rest in design

HTTP HEADERS(not only

uris)

Page 24: Rest in design

HTTP METHODS

Page 25: Rest in design
Page 26: Rest in design

Idempotent

Page 27: Rest in design

SAMPLE

Page 28: Rest in design
Page 29: Rest in design
Page 30: Rest in design
Page 31: Rest in design
Page 32: Rest in design
Page 33: Rest in design

BEYOND XML

Page 34: Rest in design

MIME Typesapplication/octet-stream

text/html

text/plain

image/jpeg

application/json

application/x-excel…

Page 35: Rest in design

HTTP RESPONSE CODES

Page 36: Rest in design
Page 37: Rest in design
Page 38: Rest in design
Page 39: Rest in design
Page 40: Rest in design

JSR 311JAX-RS: The JavaTM API for

RESTful Web Services

Page 41: Rest in design

ANNOTATIONS

Page 42: Rest in design

@Path@Produces@Consumes

@GET@POST@PUT@DELETE@HEAD

@Context@PathParam@HeaderParam@CookieParam@QueryParam

Page 43: Rest in design

WADL

Page 44: Rest in design
Page 45: Rest in design
Page 46: Rest in design

GET /customers/1/order/2/price/2000/weight/2

Page 47: Rest in design

Exceptions -> Error Code

Page 48: Rest in design

Parameters

Page 49: Rest in design

Filters

Page 50: Rest in design

RESTful services without annotations

Page 51: Rest in design

web.xml

Page 52: Rest in design

Programmatically Exposure

Page 53: Rest in design

ATOMPUB

Page 54: Rest in design
Page 55: Rest in design
Page 56: Rest in design

HANDS ON

Page 57: Rest in design

Pair Programming Exercise !

TOLL REST SERVICE

Page 58: Rest in design

TOLL REST SERVICE

U$ 0.45

U$ 3.95 **

U$ 1.00

U$ 1.59U$ 2.11

Vehicle Taxes Rates

http://diegopacheco.svn.beanstalkapp.com/sandbox/trunk/toll-rest-service-pprog

Page 59: Rest in design

REST IN DESIGN

@diego_pacheco

THANK YOU!