beyond rest web services designed for mobile · beyond rest web services designed for mobile....

157
BEYOND REST WEB SERVICES DESIGNED FOR MOBILE

Upload: others

Post on 12-Jul-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

BEYOND REST

WEB SERVICES

DESIGNED

FOR MOBILE

Page 2: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web
Page 3: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

tchacknight.com

Page 4: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

Web ServicesNative Apps

Page 5: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

Web ServicesNative Apps

People

Page 6: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

TOPICS

Page 7: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

Web API state of the art

TOPICS

Page 8: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

Web API state of the art

Design considerations for developers

TOPICS

Page 9: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

Web API state of the art

Design considerations for developers

Lessons and patterns

TOPICS

Page 10: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

STATE OF THE ART

Page 11: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

WHY REVIEW REST?

Page 12: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

WHY REVIEW REST?

Defines our constraints

It might not be what you think it is

It’s really cool

Page 13: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

REST

Page 14: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

REST

Representational State Transfer

Page 15: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

REST

Representational State Transfer

Coined by Roy Fielding in 2000

Page 16: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

REST

Representational State Transfer

Coined by Roy Fielding in 2000

The architectural style of the web

Page 17: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

REST

Representational State Transfer

Coined by Roy Fielding in 2000

The architectural style of the web

Deduced from and tested by the web itself

Page 18: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

“[REST] has allowed Web-based applications to scale from 100,000

requests per day in 1994 to 600,000,000 requests

per day in 1999.”

–Roy FieldingSource: https://www.ics.uci.edu/~fielding/pubs/dissertation/conclusions.htm

Page 19: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

0

2,250,000,000

4,500,000,000

6,750,000,000

9,000,000,000

1999 (Everything) 2015 (Just YouTube)

REQUESTS PER DAY

Source: http://www.internetlivestats.com/one-second/#youtube-band

Page 20: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

QUALITIES OF THE WEB

Simple

Proven

Scalable

Ubiquitous

Page 21: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

QUALITIES OF THE WEB

Simple

Proven

Scalable

Ubiquitous

So aren’t all web APIs REST?

Page 22: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

“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 fixed?”

–Roy Fielding, 2008

Source: http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven

Page 23: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

HATEOAS

Page 24: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

nytimes.com

Page 25: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

nytimes.com

Page 26: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

HATEOAS

Page 27: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

HATEOAS

Client doesn’t need a manual

Page 28: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

HATEOAS

Client doesn’t need a manual

Client doesn’t know URL formats

Page 29: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

HATEOAS

Client doesn’t need a manual

Client doesn’t know URL formats

Client doesn’t know available states

Page 30: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

HATEOAS

Client doesn’t need a manual

Client doesn’t know URL formats

Client doesn’t know available states

Works for more than just read-only data

Page 31: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web
Page 32: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

GET /sign_up

Page 33: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

GET /sign_up

HTML <form>

Page 34: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

GET /sign_up

HTML <form>

POST /sign_up

Page 35: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

GET /sign_up

HTML <form>

POST /sign_up

200 OK

Page 36: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

1 2

Page 37: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

GET /sign_up

HTML <form>

1 2

Page 38: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

GET /sign_up

HTML <form>

POST /sign_up

200 OK

1 2

Page 39: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

GET /sign_up

HTML <form>

1 2

Page 40: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

GET /sign_up

HTML <form>

POST /sign_up

ErrorE

1 2

Page 41: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

GET /sign_up

HTML <form>

POST /sign_up

200 OK

C C

1 2

Page 42: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

POST /sign_up

200 OK

CC

Page 43: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

POST /sign_up

200 OK

CC

GET /sign_up

{ sign_up }

Page 44: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

“There is so much coupling on display

that it should be given an X rating.”

–Roy Fielding

Source: http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven

Page 45: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

POST /sign_up

200 OK

CC

GET /sign_up

{ sign_up }

Page 46: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

CC

{ sign_up }

Page 47: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

HATEOAS

Use a native wrapper like PhoneGap?

Page 48: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

HATEOAS

Use a native wrapper like PhoneGap?

Use React Native?

Page 49: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

HATEOAS

Use a native wrapper like PhoneGap?

Use React Native?

Something else?

Page 50: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

HATEOAS

Use a native wrapper like PhoneGap?

Use React Native?

Something else?

Compensate

Page 51: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

“REST isn’t an all or nothing proposition.

One can get significant value from partial

adoption.”

–Sam RubySource: http://www.intertwingly.net/blog/2008/10/21/Progressive-Disclosure

Page 52: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

CONSIDERATIONS

FOR DEVELOPERS

Page 53: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

FOR DEVELOPERS

Page 54: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

FOR DEVELOPERS

Documented

Page 55: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

FOR DEVELOPERS

Documented

Consistent

Page 56: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

FOR DEVELOPERS

Documented

Consistent

Testable

Page 57: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

COUPLING &

PERMANENCE

C

Page 58: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

DOCUMENTATION

FOR DEVELOPERS

Page 59: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

FOR DEVELOPERSDOCUMENTATION

Treat it like any other feature

Page 60: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

FOR DEVELOPERSDOCUMENTATION

Treat it like any other feature

Must be up-to-date

Page 61: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

FOR DEVELOPERSDOCUMENTATION

Treat it like any other feature

Must be up-to-date

Good: Auto-validate

Page 62: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

FOR DEVELOPERSDOCUMENTATION

Treat it like any other feature

Must be up-to-date

Good: Auto-validate

Better: Auto-generate

Page 63: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

FOR DEVELOPERSDOCUMENTATION

Treat it like any other feature

Must be up-to-date

Good: Auto-validate

Better: Auto-generate

Critical for developer happiness

Page 64: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

FOR DEVELOPERSDOCUMENTATION

Reference

Troubleshooting

Change

Page 65: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

FOR DEVELOPERSDOCUMENTATION

Reference DocsAuthentication

Version Details

Request Headers

Response Headers

Response Format

Status Codes

Backwards Compatibility

Pagination

Resources

Methods

Method Parameters

Example Requests

Example Responses

Error Format

Page 66: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

FOR DEVELOPERSDOCUMENTATION

Reference Docs Examples

https://stripe.com/docs/api

https://instagram.com/developer

https://developer.github.com/v3

Page 67: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

FOR DEVELOPERSDOCUMENTATION

Troubleshooting

Page 68: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

FOR DEVELOPERSDOCUMENTATION

Troubleshooting

Minimum: Detailed error messages

Better: Errors with links to reference docs

Page 69: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

FOR DEVELOPERSDOCUMENTATION

Document Change

Page 70: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

FOR DEVELOPERSDOCUMENTATION

Document Change

Minimum: Changelog

Better: Mailing list

Page 71: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

CONSISTENCY

FOR DEVELOPERS

Page 72: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

FOR DEVELOPERSCONSISTENCY

Don’t deviate from the norm

Page 73: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

FOR DEVELOPERSCONSISTENCY

Don’t deviate from the norm

Use standard HTTP verbs

GET Get a resource

POST Create a resource

PUT Replace a resource

PATCH Update a resource

DELETE Delete a resource

Page 74: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

FOR DEVELOPERSCONSISTENCY

Provide consistent error responses

Page 75: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

POST /sign_up

Page 76: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

POST /sign_up

E

Page 77: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

POST /sign_up

200 OKE

Page 78: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

POST /sign_up

200 OKE

Page 79: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

POST /sign_up

200 OK

POST /sign_up

200 OK

E

E

Page 80: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

POST /sign_up

200 OK

POST /sign_up

200 OK

E

EX

Page 81: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

POST /sign_up

200 OK

POST /sign_up

422 Invalid

E

E✓

Page 82: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

FOR DEVELOPERSCONSISTENCY

Use standard HTTP status codes

200 Success

201 Created

400 Bad request

401 Unauthorized

404 Not found

422 Unprocessable entity

500 Server error

Page 83: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

FOR DEVELOPERSCONSISTENCY

Backwards compatibility

Page 84: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

FOR DEVELOPERSCONSISTENCY

Backwards compatibility

Publish your contract

Page 85: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

FOR DEVELOPERSCONSISTENCY

Backwards compatibility

Publish your contract

Adding new stuff is OK

Page 86: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

FOR DEVELOPERSCONSISTENCY

Backwards compatibility

Publish your contract

Adding new stuff is OK

Removing stuff is not OK :(

Page 87: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

FOR DEVELOPERSCONSISTENCY

Backwards compatibility

Publish your contract

Adding new stuff is OK

Removing stuff is not OK :(

Making a backwards-incompatible change creates a new version of the API

Page 88: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

FOR DEVELOPERSCONSISTENCY

How Stripe handles versions

Page 89: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

FOR DEVELOPERSCONSISTENCY

How Stripe handles versions

Backwards compatibility is “hidden”

Page 90: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

FOR DEVELOPERSCONSISTENCY

How Stripe handles versions

Backwards compatibility is “hidden”

New users are on the latest version

Page 91: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

FOR DEVELOPERSCONSISTENCY

How Stripe handles versions

Backwards compatibility is “hidden”

New users are on the latest version

Stripe adds breaking changes with gates

Page 92: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

FOR DEVELOPERSCONSISTENCY

How Stripe handles versions

Backwards compatibility is “hidden”

New users are on the latest version

Stripe adds breaking changes with gates

Users can update to the latest anytime

Page 93: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

TESTABLE

FOR DEVELOPERS

Page 94: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

FOR DEVELOPERSTESTABLE

Web APIs must be testable

Page 95: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

FOR DEVELOPERSTESTABLE

Web APIs must be testable

Minimum: Staging, Sandbox, or Test Mode

Better: Developers run a local server

Page 96: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

LESSONS &

PATTERNS

Page 97: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

PATTERNS

Kill switch

Page 98: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

PATTERNS

Kill switch

Source of truth

Page 99: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

PATTERNS

Kill switch

Source of truth

Pubsub

Page 100: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

KILL SWITCH

PATTERNS

Page 101: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

Can I have my data, please?

You need to upgrade, sorry!

:(

Page 102: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

PATTERNSKILL SWITCH

A must have

Page 103: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

PATTERNSKILL SWITCH

A must have

Minimum: Force an upgrade

Page 104: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

PATTERNSKILL SWITCH

A must have

Minimum: Force an upgrade

Better: Communicate with users

Page 105: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

PATTERNSKILL SWITCH

Hypothetical situation

Page 106: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

PATTERNSKILL SWITCH

Hypothetical situation

You have an app in the App Store

Page 107: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

PATTERNSKILL SWITCH

Hypothetical situation

You have an app in the App Store

You discover a bug and start fixing it

Page 108: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

PATTERNSKILL SWITCH

Hypothetical situation

You have an app in the App Store

You discover a bug and start fixing it

Meanwhile, end users also discover it

Page 109: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

PATTERNSKILL SWITCH

Hypothetical situation

You have an app in the App Store

You discover a bug and start fixing it

Meanwhile, end users also discover it

You’re helpless for 1 or 2 weeks

Page 110: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

PATTERNSKILL SWITCH

Hypothetical situation

You have an app in the App Store

You discover a bug and start fixing it

Meanwhile, end users also discover it

You’re helpless for 1 or 2 weeks

Alert them

Page 111: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

App version

Platform

OS version

Device

User-Agent MyApp/3.07.01 (Android; 5.0.2; Galaxy S6)

KILL SWITCH PATTERNS

Page 112: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

SOURCE OF TRUTH

PATTERNS

Page 113: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

PATTERNSSOURCE OF TRUTH

The server is always the source of truth

Page 114: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

PATTERNSSOURCE OF TRUTH

The server is always the source of truth

Except when it isn’t

Page 115: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

PATTERNSSOURCE OF TRUTH

The server is always the source of truth

Except when it isn’t

What about when resources are created?

Page 116: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

PATTERNSSOURCE OF TRUTH

The server is always the source of truth

Except when it isn’t

What about when resources are created?

What about airplane mode?

Page 117: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web
Page 118: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web
Page 119: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

PATTERNSSOURCE OF TRUTH

Keep it simple

Page 120: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

PATTERNSSOURCE OF TRUTH

Keep it simple

Minimize client state

Page 121: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

PATTERNSSOURCE OF TRUTH

Keep it simple

Minimize client state

Sync is an interesting, hard problem

Page 122: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

PUBSUB

PATTERNS

Page 123: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

PATTERNSPUBSUB

Publishers

Channels

Subscribers

Page 124: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

PATTERNSPUBSUB

Publishers

Channels

Subscribers

Publishers and subscribers don’t know about each other

Page 125: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web
Page 126: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web
Page 127: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

GET /stream

Page 128: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

GET /stream

200 OK

Page 129: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web
Page 130: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

POST /like

201 Created

Page 131: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

POST /like

201 Created

Page 132: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

POST /like

201 Created

Page 133: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

POST /like

201 Created

Page 134: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

Channel Subscriber 1

Page 135: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

POST /like

Channel Subscriber 1

Update!

Update!

Page 136: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

POST /like

Channel Subscriber 1

Update!

Update!

Subscriber 2

Update!

Subscriber 3

Update!

Page 137: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

Channel Subscriber 1

Update!

Subscriber 2

Update!

Subscriber 3

Update!

POST /like

Update!

Page 138: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

GET /stream

200 OK

Pushpin

Page 139: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

Pushpin

Page 140: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

Pushpin

GET /stream

Page 141: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

Pushpin

GET /streamGET /stream

Page 142: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

Pushpin

GET /streamGET /stream

Open #channel

Page 143: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

Pushpin

GET /stream

200 OK chunked

GET /stream

Open #channel

Page 144: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

Pushpin

GET /stream

200 OK chunked

GET /stream

Open #channel

POST /like

Page 145: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

Pushpin

GET /stream

200 OK chunked

GET /stream

Open #channel

Publish #channelPOST /like

Page 146: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

Pushpin

GET /stream

200 OK chunked

GET /stream

Open #channel

Publish #channel

Publish #channel

Publish #channel

POST /like

POST /like

POST /like

Page 147: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

Pushpin

GET /stream

200 OK chunked

GET /stream

Open #channel

Publish #channel

Publish #channel

Publish #channel

POST /like

POST /like

POST /like

Page 148: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

Pushpin

GET /stream

200 OK chunked

GET /stream

Open #channel

Publish #channel

Publish #channel

Publish #channel

POST /like

POST /like

POST /like

Page 149: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

PUSHPIN

Page 150: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

PUSHPIN

Transparent infrastructure layer

Page 151: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

PUSHPIN

Transparent infrastructure layer

Independently scalable

Page 152: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

PUSHPIN

Transparent infrastructure layer

Independently scalable

Simple for clients

Page 153: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

PUSHPIN

Transparent infrastructure layer

Independently scalable

Simple for clients

Open source

Page 154: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

RECAP

Page 155: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

Shared some tips and lessons learned

Importance of developer experience

Web API state of the art

RECAP

Page 156: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

THANKS!

Page 157: BEYOND REST WEB SERVICES DESIGNED FOR MOBILE · BEYOND REST WEB SERVICES DESIGNED FOR MOBILE. tchacknight.com. Native Apps Web Services. Native Apps Web Services People. TOPICS. Web

https://github.com/livefront/beyond-rest

Sam Kirchmeier

@skirchmeier

THANKS!