yow! nights - yow! conference · 2019. 9. 23. · kevin o’neill - cto playup - @kevinoneill yow!...

97
Kevin O’Neill CTO PlayUp YOW! Nights @kevinoneill March 2013

Upload: others

Post on 20-Jan-2021

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

Kevin O’NeillCTO PlayUp

YOW!Nights

@kevinoneill

March 2013

Page 2: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Page 3: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Page 4: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Page 5: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Roadmap

• ReST and Hypermedia

• An example of a Hypermedia driven service

• Tips & Trips

Page 6: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

A jumping off point

Page 7: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Opinionated

Page 8: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Real

Page 9: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

ReST & Hypermedia

Page 10: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Representational State Transfer (ReST) is a style of software architecture for distributed

hypermedia systems such as the World Wide Web

Page 11: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

ReST

Page 12: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

ReST is not a meaningful term

Page 13: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

One URL ≠ ReST

Page 15: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Resources = ReST

Page 16: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Resources = ReST

http://example.com/users/3

http://example.com/users/<uid>

http://example.com/users/<uid>/friends

Page 17: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

HTTP Verbs = ReST

Page 18: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

HTTP Verbs = ReST

POST  http://example.com/users

GET  http://example.com/users/3

PUT  http://example.com/users/3

DELETE  http://example.com/users/3

Page 19: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

What is ReST really?

Page 20: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

"ReST is software design on the scale of decades: every detail is intended to promote software longevity and independent evolution. Many of the constraints are directly opposed to short-term ef"ciency. Unfortunately, people are fairly good at short-term design, and usually awful at long-term design."

Roy Fielding

Page 21: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

The constraints of ReST

Page 22: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Client Server

Page 23: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Stateless Server

Page 24: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Cacheable

Page 25: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Uniform Interface

Page 26: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Layered System

Page 27: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Code-On-Demand(optional)

Page 28: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Uniform Interface

Page 29: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Identi"cation of Resources

Page 30: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Manipulation of resources through

representations

Page 31: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Self-descriptive messages

Page 32: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Hypermedia as the engine of application

state

Page 33: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

“What needs to be done to make the ReST architectural style clear on the notion that hypertext is a constraint? In other words, if the engine of application state (and hence the API) is not being driven by hypertext, then it cannot be ReSTful and cannot be a ReST API. Period. Is there some broken manual somewhere that needs to be "xed?”

Roy T. Fielding

Page 34: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

A Hypermedia driven service

Page 35: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

PlayUp Pass

Page 36: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Page 37: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

AppStore

TicketService

7:20 PM

1 Get Section

2 Get Tile

3 Priced Tile

4 Section

5�*HW�RHU��3OD\8SBL26BRHUB�� 6�2HU��$SSB6WRUHB7LHUB��

7 Get Price�$SSB6WRUHB7LHUB��

8 $����

TMS

ContentProvider

($)

Getting the Price

Page 38: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Products":type":  "application/vnd.playup.ticketing.product+json",  "product":  {        "detail":  {                ":type":  "application/vnd.playup.encrypted+json",                  "aes256-­‐cbc":  {                        "data":  "  …  ",                          "iv":  "  …  ",                          "key":  "  …  ",                          "signature":  "  …  ",                          "type":  "application/vnd.playup.ticketing.product.detail+json"                }        },          "id":  "82699e9b-­‐b147-­‐46b4-­‐a90c-­‐24316071b6e9",          "name":  "F1  GP  Insider",          "preview":  {                ":href":  "http://april.ticket-­‐provider.playupdev.com/content/82/preview?token={token:ticketing_sample_provider}",                  ":type":  "application/vnd.playup.stream.story+json"        },          "provider":  "ticketing_sample_provider"},  "offer":  {        ":href":  "http://april.ticket.playupdev.com/ticket?provider=ticketing_sample_provider&token={token:ticket_service}",          ":options":  [                "POST"        ]        ":acceptable_types":  [                "application/vnd.playup.encrypted+json;embedded=\"application/vnd.playup.ticketing.product.details+json\";for=\"ticket_service\""        ],  }

Page 39: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Products":type":  "application/vnd.playup.ticketing.product+json",  "product":  {        "detail":  {                ":type":  "application/vnd.playup.encrypted+json",                  "aes256-­‐cbc":  {                        "data":  "  …  ",                          "iv":  "  …  ",                          "key":  "  …  ",                          "signature":  "  …  ",                          "type":  "application/vnd.playup.ticketing.product.detail+json"                }        },          "id":  "82699e9b-­‐b147-­‐46b4-­‐a90c-­‐24316071b6e9",          "name":  "F1  GP  Insider",          "preview":  {                ":href":  "http://april.ticket-­‐provider.playupdev.com/content/82/preview?token={token:ticketing_sample_provider}",                  ":type":  "application/vnd.playup.stream.story+json"        },          "provider":  "ticketing_sample_provider"},  "offer":  {        ":href":  "http://april.ticket.playupdev.com/ticket?provider=ticketing_sample_provider&token={token:ticket_service}",          ":options":  [                "POST"        ]        ":acceptable_types":  [                "application/vnd.playup.encrypted+json;embedded=\"application/vnd.playup.ticketing.product.details+json\";for=\"ticket_service\""        ],  }

":type":  "application/vnd.playup.ticketing.product+json"

Page 40: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Preview":type":  "application/vnd.playup.ticketing.product+json",  "product":  {        "detail":  {                ":type":  "application/vnd.playup.encrypted+json",                  "aes256-­‐cbc":  {                        "data":  "  …  ",                          "iv":  "  …  ",                          "key":  "  …  ",                          "signature":  "  …  ",                          "type":  "application/vnd.playup.ticketing.product.detail+json"                }        },          "id":  "82699e9b-­‐b147-­‐46b4-­‐a90c-­‐24316071b6e9",          "name":  "F1  GP  Insider",          "preview":  {                ":href":  "http://april.ticket-­‐provider.playupdev.com/content/82/preview?token={token:ticketing_sample_provider}",                  ":type":  "application/vnd.playup.stream.story+json"        },          "provider":  "ticketing_sample_provider"},  "offer":  {        ":href":  "http://april.ticket.playupdev.com/ticket?provider=ticketing_sample_provider&token={token:ticket_service}",          ":options":  [                "POST"        ]        ":acceptable_types":  [                "application/vnd.playup.encrypted+json;embedded=\"application/vnd.playup.ticketing.product.details+json\";for=\"ticket_service\""        ],  }

"preview":  {    ":href":  "http://april.ticket-­‐provider.playupdev.com/content/82/preview?token={token:ticketing_sample_provider}",      ":type":  "application/vnd.playup.stream.story+json"},  

Page 41: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Preview":type":  "application/vnd.playup.ticketing.product+json",  "product":  {        "detail":  {                ":type":  "application/vnd.playup.encrypted+json",                  "aes256-­‐cbc":  {                        "data":  "  …  ",                          "iv":  "  …  ",                          "key":  "  …  ",                          "signature":  "  …  ",                          "type":  "application/vnd.playup.ticketing.product.detail+json"                }        },          "id":  "82699e9b-­‐b147-­‐46b4-­‐a90c-­‐24316071b6e9",          "name":  "F1  GP  Insider",          "preview":  {                ":href":  "http://april.ticket-­‐provider.playupdev.com/content/82/preview?token={token:ticketing_sample_provider}",                  ":type":  "application/vnd.playup.stream.story+json"        },          "provider":  "ticketing_sample_provider"},  "offer":  {        ":href":  "http://april.ticket.playupdev.com/ticket?provider=ticketing_sample_provider&token={token:ticket_service}",          ":options":  [                "POST"        ]        ":acceptable_types":  [                "application/vnd.playup.encrypted+json;embedded=\"application/vnd.playup.ticketing.product.details+json\";for=\"ticket_service\""        ],  }

":type":  "application/vnd.playup.stream.story+json"

Page 42: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Accept Header

Page 43: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Accept Header

Accept

application/vnd.playup.stream.story+json,*/*

Page 44: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

":type":  "application/vnd.playup.ticketing.product+json",  "product":  {        "detail":  {                ":type":  "application/vnd.playup.encrypted+json",                  "aes256-­‐cbc":  {                        "data":  "  …  ",                          "iv":  "  …  ",                          "key":  "  …  ",                          "signature":  "  …  ",                          "type":  "application/vnd.playup.ticketing.product.detail+json"                }        },          "id":  "82699e9b-­‐b147-­‐46b4-­‐a90c-­‐24316071b6e9",          "name":  "F1  GP  Insider",          "preview":  {                ":href":  "http://april.ticket-­‐provider.playupdev.com/content/82/preview?token={token:ticketing_sample_provider}",                  ":type":  "application/vnd.playup.stream.story+json"        },          "provider":  "ticketing_sample_provider"},  "offer":  {        ":href":  "http://april.ticket.playupdev.com/ticket?provider=ticketing_sample_provider&token={token:ticket_service}",          ":options":  [                "POST"        ]        ":acceptable_types":  [                "application/vnd.playup.encrypted+json;embedded=\"application/vnd.playup.ticketing.product.details+json\";for=\"ticket_service\""        ],  }

Preview

":href":  "http://april.ticket-­‐provider.playupdev.com/content/82/preview?token={token:ticketing_sample_provider}"

Page 45: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

URI Parameterization

Page 46: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

URI Parameterization":type":  "application/vnd.playup.ticketing.product+json",  "product":  {        "detail":  {                ":type":  "application/vnd.playup.encrypted+json",                  "aes256-­‐cbc":  {                        "data":  "  …  ",                          "iv":  "  …  ",                          "key":  "  …  ",                          "signature":  "  …  ",                          "type":  "application/vnd.playup.ticketing.product.detail+json"                }        },          "id":  "82699e9b-­‐b147-­‐46b4-­‐a90c-­‐24316071b6e9",          "name":  "F1  GP  Insider",          "preview":  {                ":href":  "http://april.ticket-­‐provider.playupdev.com/content/82/preview?token={token:ticketing_sample_provider}",                  ":type":  "application/vnd.playup.stream.story+json"        },          "provider":  "ticketing_sample_provider"},  "offer":  {        ":href":  "http://april.ticket.playupdev.com/ticket?provider=ticketing_sample_provider&token={token:ticket_service}",          ":options":  [                "POST"        ]        ":acceptable_types":  [                "application/vnd.playup.encrypted+json;embedded=\"application/vnd.playup.ticketing.product.details+json\";for=\"ticket_service\""        ],  }

{token:ticketing_sample_provider}

Page 47: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

URI Parameterizationhttp://april.ticket-­‐provider.playupdev.com/content/82/preview?token=ABBr0dVOGRdPpF%2BAqll9sJNJAICWEHK%2BnTngDMzBI5IiABmlstT3RjwIBGkJpUCX3lchMQF3OrGoYyiYHh8zAbc7m%2FhsttbKyBBa%2BiX5hSApeBi1erBw7oJH9LBmk%2B1pfL2zApBDxCZZpJCkT5hScK1Z2g3%2BDhqkrQJTs3PQumbbC9bXJRnENksQhsb%2BNJuFrJ47sAGQBPPXyN0hy40i3J6LcwGMUSFIaR5kIAw3%2BiYyiKgC35rmZzvMYGEeV%2F08YR1ih47aKct5%2Fk0CTbzR06qxi1W11fR3pSMBn3HxqgYPjjMdgsa%2B5PiLv102eTk7kXc4Aqz1VDN2ogqu3qDbzebxdp6OOhnoSKa3jebrV9MOH6IgBRKYfiujq7MNle1xV1LwUQlm3T4BagclibIqOq%2FS1psWo0oZfU1DQW5h2AX%2BLrvF%2BGfgFRiHvaOWBUuq5esY0yqENyjD3Yu8WGq15MTqI36oK5S6hUy%2F0gAlB0rFMU%2BSX4WbuX64yjlKVWV5wr7E3FmaxT7yr98pGq04zKrJv2tn4rpUtcRoc8LrYiK2BdoQplYATGBCDgv68p%2FTiislPJv0%2B4hqhO5oAIv7fMa81uy%2F5WMcOjzmmsOgJzua0%2B%2FarXna9I3d0djqJ9fTDSQkM6icwz5u2P%2Btulzwq8UHEgYEFYFGUKyk%2BEXUgre7nttltajpLL3fRqGfrUqyI1NNM1dqGjeDN4zL0YA8KujtSoSWcA%3D%3D

Page 48: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Offers":type":  "application/vnd.playup.ticketing.product+json",  "product":  {        "detail":  {                ":type":  "application/vnd.playup.encrypted+json",                  "aes256-­‐cbc":  {                        "data":  "  …  ",                          "iv":  "  …  ",                          "key":  "  …  ",                          "signature":  "  …  ",                          "type":  "application/vnd.playup.ticketing.product.detail+json"                }        },          "id":  "82699e9b-­‐b147-­‐46b4-­‐a90c-­‐24316071b6e9",          "name":  "F1  GP  Insider",          "preview":  {                ":href":  "http://april.ticket-­‐provider.playupdev.com/content/82/preview?token={token:ticketing_sample_provider}",                  ":type":  "application/vnd.playup.stream.story+json"        },          "provider":  "ticketing_sample_provider"},  "offer":  {        ":href":  "http://april.ticket.playupdev.com/ticket?provider=ticketing_sample_provider&token={token:ticket_service}",          ":options":  [                "POST"        ]        ":acceptable_types":  [                "application/vnd.playup.encrypted+json;embedded=\"application/vnd.playup.ticketing.product.details+json\";for=\"ticket_service\""        ],  }

Page 49: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Offers":type":  "application/vnd.playup.ticketing.product+json",  "product":  {        "detail":  {                ":type":  "application/vnd.playup.encrypted+json",                  "aes256-­‐cbc":  {                        "data":  "  …  ",                          "iv":  "  …  ",                          "key":  "  …  ",                          "signature":  "  …  ",                          "type":  "application/vnd.playup.ticketing.product.detail+json"                }        },          "id":  "82699e9b-­‐b147-­‐46b4-­‐a90c-­‐24316071b6e9",          "name":  "F1  GP  Insider",          "preview":  {                ":href":  "http://april.ticket-­‐provider.playupdev.com/content/82/preview?token={token:ticketing_sample_provider}",                  ":type":  "application/vnd.playup.stream.story+json"        },          "provider":  "ticketing_sample_provider"},  "offer":  {        ":href":  "http://april.ticket.playupdev.com/ticket?provider=ticketing_sample_provider&token={token:ticket_service}",          ":options":  [                "POST"        ]        ":acceptable_types":  [                "application/vnd.playup.encrypted+json;embedded=\"application/vnd.playup.ticketing.product.details+json\";for=\"ticket_service\""        ],  }

":href":  "http://april.ticket.playupdev.com/ticket?provider=ticketing_sample_provider&token={token:ticket_service}"

Page 50: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Offers":type":  "application/vnd.playup.ticketing.product+json",  "product":  {        "detail":  {                ":type":  "application/vnd.playup.encrypted+json",                  "aes256-­‐cbc":  {                        "data":  "  …  ",                          "iv":  "  …  ",                          "key":  "  …  ",                          "signature":  "  …  ",                          "type":  "application/vnd.playup.ticketing.product.detail+json"                }        },          "id":  "82699e9b-­‐b147-­‐46b4-­‐a90c-­‐24316071b6e9",          "name":  "F1  GP  Insider",          "preview":  {                ":href":  "http://april.ticket-­‐provider.playupdev.com/content/82/preview?token={token:ticketing_sample_provider}",                  ":type":  "application/vnd.playup.stream.story+json"        },          "provider":  "ticketing_sample_provider"},  "offer":  {        ":href":  "http://april.ticket.playupdev.com/ticket?provider=ticketing_sample_provider&token={token:ticket_service}",          ":options":  [                "POST"        ],        ":acceptable_types":  [                "application/vnd.playup.encrypted+json;embedded=\"application/vnd.playup.ticketing.product.details+json\";for=\"ticket_service\""        ]  }

Text  ":options":  [      "POST"  ]

Page 51: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Offers":type":  "application/vnd.playup.ticketing.product+json",  "product":  {        "detail":  {                ":type":  "application/vnd.playup.encrypted+json",                  "aes256-­‐cbc":  {                        "data":  "  …  ",                          "iv":  "  …  ",                          "key":  "  …  ",                          "signature":  "  …  ",                          "type":  "application/vnd.playup.ticketing.product.detail+json"                }        },          "id":  "82699e9b-­‐b147-­‐46b4-­‐a90c-­‐24316071b6e9",          "name":  "F1  GP  Insider",          "preview":  {                ":href":  "http://april.ticket-­‐provider.playupdev.com/content/82/preview?token={token:ticketing_sample_provider}",                  ":type":  "application/vnd.playup.stream.story+json"        },          "provider":  "ticketing_sample_provider"},  "offer":  {        ":href":  "http://april.ticket.playupdev.com/ticket?provider=ticketing_sample_provider&token={token:ticket_service}",          ":options":  [                "POST"        ]        ":acceptable_types":  [                "application/vnd.playup.encrypted+json;embedded=\"application/vnd.playup.ticketing.product.details+json\";for=\"ticket_service\""        ],  }

":acceptable_types":  [  "application/vnd.playup.encrypted+json      ;embedded=          \"application/vnd.playup.ticketing.product.details+json\"      ;for=\"ticket_service\""]

Page 52: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Media Types

Page 53: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Media Typesdescribe a domain speci"c protocol

Page 54: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

application/json

Page 55: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Media Type Explosion

Page 56: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Media Types":type":  "application/vnd.playup.ticketing.product+json",  "product":  {        "detail":  {                ":type":  "application/vnd.playup.encrypted+json",                  "aes256-­‐cbc":  {                        "data":  "  …  ",                          "iv":  "  …  ",                          "key":  "  …  ",                          "signature":  "  …  ",                          "type":  "application/vnd.playup.ticketing.product.detail+json"                }        },          "id":  "82699e9b-­‐b147-­‐46b4-­‐a90c-­‐24316071b6e9",          "name":  "F1  GP  Insider",          "preview":  {                ":href":  "http://april.ticket-­‐provider.playupdev.com/content/82/preview?token={token:ticketing_sample_provider}",                  ":type":  "application/vnd.playup.stream.story+json"        },          "provider":  "ticketing_sample_provider"},  "offer":  {        ":href":  "http://april.ticket.playupdev.com/ticket?provider=ticketing_sample_provider&token={token:ticket_service}",          ":options":  [                "POST"        ]        ":acceptable_types":  [                "application/vnd.playup.encrypted+json;embedded=\"application/vnd.playup.ticketing.product.details+json\";for=\"ticket_service\""        ],  }

Page 57: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Media Types

application/vnd.playup.encrypted+json;embedded=\"application/vnd.playup.ticketing.product.details+json\";for=\"ticket_service\"

Page 58: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Media Types

application/vnd.playup.encrypted+json;embedded=\"application/vnd.playup.ticketing.product.details+json\";for=\"ticket_service\"

Page 59: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Media Types

application/vnd.playup.encrypted+json;embedded=\"application/vnd.playup.ticketing.product.details+json\";for=\"ticket_service\"

Page 60: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Something to consider

Page 61: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Format vs Type

application/vnd.playup.stream+json

Page 62: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Format vs Type

application/vnd.playup.stream+json

Page 63: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Format vs Type

application/vnd.playup.stream+mp

Page 64: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Format vs Type

application/vnd.playup.stream;format=\”json\”

Page 65: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

So now we post

Page 66: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Offer{        ":type":  "application/vnd.playup.ticketing.offer+json",          "content":  {                "expiration":  "2015-­‐03-­‐13  01:12:44  +0000",                  "store-­‐product":  [                        {                                "product":  "com.playup.content.pricing.tier1",                                  "vendor":  "appstore"                        }                ]        },          "verification":  {                "key":  "…",                  "link":  {                        ":acceptable_types":  [                                "application/vnd.playup.encrypted+json;embedded=\"application/vnd.playup.ticketing.receipt+json\";for=\"ticket_service\""                        ],                          ":href":  "http://april.ticket.playupdev.com/receipt?token={token:ticket_service}",                          ":options":  [                                "POST"                        ]                }        }}

Page 67: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Offer{        ":type":  "application/vnd.playup.ticketing.offer+json",          "content":  {                "expiration":  "2015-­‐03-­‐13  01:12:44  +0000",                  "store-­‐product":  [                        {                                "product":  "com.playup.content.pricing.tier1",                                  "vendor":  "appstore"                        }                ]        },          "verification":  {                "key":  "…",                  "link":  {                        ":acceptable_types":  [                                "application/vnd.playup.encrypted+json;embedded=\"application/vnd.playup.ticketing.receipt+json\";for=\"ticket_service\""                        ],                          ":href":  "http://april.ticket.playupdev.com/receipt?token={token:ticket_service}",                          ":options":  [                                "POST"                        ]                }        }}

"content":  {    "expiration":  "2015-­‐03-­‐13  01:12:44  +0000",      "store-­‐product":  [        {            "product":  "com.playup.content.pricing.tier1",              "vendor":  "appstore"        }    ]}

Page 68: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

{        ":type":  "application/vnd.playup.ticketing.offer+json",          "content":  {                "expiration":  "2015-­‐03-­‐13  01:12:44  +0000",                  "store-­‐product":  [                        {                                "product":  "com.playup.content.pricing.tier1",                                  "vendor":  "appstore"                        }                ]        },          "verification":  {                "key":  "…",                  "link":  {                        ":acceptable_types":  [                                "application/vnd.playup.encrypted+json;embedded=\"application/vnd.playup.ticketing.receipt+json\";for=\"ticket_service\""                        ],                          ":href":  "http://april.ticket.playupdev.com/receipt?token={token:ticket_service}",                          ":options":  [                                "POST"                        ]                }        }}

Offer

"link":  {    ":href":  "http://april.ticket.playupdev.com/receipt…",      ":options":  [  "POST"  ],    ":acceptable_types":  [        "application/vnd.playup.encrypted+json;…"    ]}

Page 69: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Tips & Trips

Page 70: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

API Versioning

Page 71: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Versioning

X-­‐PlayUp-­‐API-­‐Version

3

Page 72: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Don’t Do It

Page 73: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Server Decides

User-­‐Agent

PlayUp%20Pass/3.5.5233  CFNetwork/609.1.4  Darwin/13.0.0

Page 74: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Client Decides

"link":  {    ":representations":  [        {            "href":  "http://twinstapics.playupdev.com/photos/86/stream  …"  ,              "type":  "application/vnd.playup.stream+json"        },          {              "href":  "http://twinstapics.playupdev.com/photos/86/section  …"    ,              "type":  "text/html"        }    ],      ":self":  "http://twinstapics.playupdev.com/photos/86/section  …",      ":type":  "text/html"},  

Page 75: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Client Decides

"link":  {    ":representations":  [        {            "href":  "http://twinstapics.playupdev.com/photos/86/stream  …"  ,              "type":  "application/vnd.playup.stream+json"        },          {              "href":  "http://twinstapics.playupdev.com/photos/86/section  …"    ,              "type":  "text/html"        }    ],      ":href":  "http://twinstapics.playupdev.com/photos/86/section  …",      ":type":  "text/html"},  

Page 76: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Client Decides

"link":  {    ":representations":  [        {            "href":  "http://twinstapics.playupdev.com/photos/86/stream  …"  ,              "type":  "application/vnd.playup.stream+json"        },          {              "href":  "http://twinstapics.playupdev.com/photos/86/section  …"    ,              "type":  "text/html"        }    ],      ":href":  "http://twinstapics.playupdev.com/photos/86/section  …",      ":type":  "text/html"},  

Page 77: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Client vs Server

Page 78: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Document Evolution

Page 79: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

The client should ignore what it doesn’t

understand

Page 80: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Don’t add or remove mandatory "elds

Page 81: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

New Media Type

Page 82: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

"Realtime" Updates

Page 83: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Page 84: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

XMPP

Page 85: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Polling

Page 86: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Leverage Infrastructure

Page 87: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Dynamic Scaling

Page 88: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Cache Headers

ETag"9461cf5ecc0f4df6e880ce76479aba90"

Cache-­‐Controlmax-­‐age=15,  public

VaryAccept-­‐Language

Page 89: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Cache Headers

ETag"9461cf5ecc0f4df6e880ce76479aba90"

Cache-­‐Controlmax-­‐age=15,  public

VaryAccept-­‐Language

   Cache-­‐Control    max-­‐age=15,  public

Page 90: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Other Choices

Page 91: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Tools

Page 92: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Charles

Page 93: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Fiddler

Page 94: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Link Conditioner

Page 95: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Wireshark

Page 96: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Wireshark

rvictl  -­‐s  <device  UDID>

/def/bpf*

Page 97: YOW! Nights - YOW! Conference · 2019. 9. 23. · Kevin O’Neill - CTO PlayUp - @kevinoneill YOW! Nights - March 2013 “What needs to be done to make the ReST architectural style

YOW! Nights - March 2013Kevin O’Neill - CTO PlayUp - @kevinoneill

Kevin O’NeillCTO - PlayUp

[email protected]@kevinoneill

Questions?