133
First-Class APIs Helgi Þormar Þorbjörnsson PHP Tek, Chicago, 25th May 2011 Thursday, 26 May 2011

First-Class APIs, PHPTek 11, Chicago

Embed Size (px)

DESCRIPTION

APIs are commonly an afterthought, like a hot tub awkwardly attached to a house — a shoehorned approach that produces a suboptimal app with scarce support that lacks documentation. In effect, APIs are the ugly stepchild of the Web.This is a sad reality that we are faced with, because many companies make their living consuming third-party APIs and mixing in their own data to create amazing and interesting mashups. In the initial phases of development, there is rarely enough money to develop the app and its API. By the time there’s both demand and money, it can be hard to fit an API on top of the architecture in such a way that the whole thing won’t fall over. APIs should be first class citizens of the Web. Inconceivable? Possimpible? Not at all!In this talk we will dive deeper into why APIs are an afterthought, how we can change that. We will also touch on how that can benefit your product down the line in terms of resource savings and infrastructure efficiency, as well as the impact it will have on your infrastructure.This talk is inspired by my phpadvent article: http://phpadvent.org/201002

Citation preview

Page 1: First-Class APIs, PHPTek 11, Chicago

First-Class APIs

Helgi Þormar ÞorbjörnssonPHP Tek, Chicago, 25th May 2011

Thursday, 26 May 2011

Page 2: First-Class APIs, PHPTek 11, Chicago

Hi there, I’m Helgi

Thursday, 26 May 2011

Page 3: First-Class APIs, PHPTek 11, Chicago

VP of Engineering at Orchestra.io

Thursday, 26 May 2011

Page 4: First-Class APIs, PHPTek 11, Chicago

VP of Engineering at Orchestra.io

Developer at PEAR

Thursday, 26 May 2011

Page 5: First-Class APIs, PHPTek 11, Chicago

VP of Engineering at Orchestra.io

Developer at PEAR

From Iceland

Thursday, 26 May 2011

Page 6: First-Class APIs, PHPTek 11, Chicago

VP of Engineering at Orchestra.io

Developer at PEAR

From Iceland

@h on Twitter

Thursday, 26 May 2011

Page 7: First-Class APIs, PHPTek 11, Chicago

1995 2000 2005 2010

John MusserFounder, Programmable Web

Thursday, 26 May 2011

Page 8: First-Class APIs, PHPTek 11, Chicago

Why do we need a website?

1995 2000 2005 2010

John MusserFounder, Programmable Web

Thursday, 26 May 2011

Page 9: First-Class APIs, PHPTek 11, Chicago

Why do we need a website?

Of course we have a website

1995 2000 2005 2010

John MusserFounder, Programmable Web

Thursday, 26 May 2011

Page 10: First-Class APIs, PHPTek 11, Chicago

Why do we need a website?

Of course we have a website

Why do we need an API?

1995 2000 2005 2010

John MusserFounder, Programmable Web

Thursday, 26 May 2011

Page 11: First-Class APIs, PHPTek 11, Chicago

Why do we need a website?

Of course we have a website

Why do we need an API?

Of course we have an API

1995 2000 2005 2010

John MusserFounder, Programmable Web

Thursday, 26 May 2011

Page 12: First-Class APIs, PHPTek 11, Chicago

Data is the new business model

Thursday, 26 May 2011

Page 13: First-Class APIs, PHPTek 11, Chicago

APIs are the business glue

Thursday, 26 May 2011

Page 14: First-Class APIs, PHPTek 11, Chicago

Business without an API?

Thursday, 26 May 2011

Page 15: First-Class APIs, PHPTek 11, Chicago

Developers hunger to use your data

Thursday, 26 May 2011

Page 16: First-Class APIs, PHPTek 11, Chicago

Do not keep it all to your self

Thursday, 26 May 2011

Page 17: First-Class APIs, PHPTek 11, Chicago

The data wasn’t yours to begin with!

Thursday, 26 May 2011

Page 18: First-Class APIs, PHPTek 11, Chicago

Thursday, 26 May 2011

Page 19: First-Class APIs, PHPTek 11, Chicago

Mine?Mine?Mine?Mine?

Mine? Mine?

Mine?

Mine?

Mine?

Thursday, 26 May 2011

Page 20: First-Class APIs, PHPTek 11, Chicago

Not everyone believes this

Thursday, 26 May 2011

Page 21: First-Class APIs, PHPTek 11, Chicago

They do like their ivory towers

Thursday, 26 May 2011

Page 22: First-Class APIs, PHPTek 11, Chicago

For years APIs have been treated as...

Thursday, 26 May 2011

Page 23: First-Class APIs, PHPTek 11, Chicago

Second-Class Citizen

Thursday, 26 May 2011

Page 24: First-Class APIs, PHPTek 11, Chicago

Why?

Thursday, 26 May 2011

Page 25: First-Class APIs, PHPTek 11, Chicago

It’s a conceptional problem

Thursday, 26 May 2011

Page 26: First-Class APIs, PHPTek 11, Chicago

Companies believe they will lose business if they share

Thursday, 26 May 2011

Page 27: First-Class APIs, PHPTek 11, Chicago

Websites are considered the business

Thursday, 26 May 2011

Page 28: First-Class APIs, PHPTek 11, Chicago

Not the API

Thursday, 26 May 2011

Page 29: First-Class APIs, PHPTek 11, Chicago

APIs are for the cool kids

Thursday, 26 May 2011

Page 30: First-Class APIs, PHPTek 11, Chicago

Or...

Thursday, 26 May 2011

Page 31: First-Class APIs, PHPTek 11, Chicago

Not enough money

Thursday, 26 May 2011

Page 32: First-Class APIs, PHPTek 11, Chicago

Not enough time

Thursday, 26 May 2011

Page 33: First-Class APIs, PHPTek 11, Chicago

Not enough resources

Thursday, 26 May 2011

Page 34: First-Class APIs, PHPTek 11, Chicago

Not enough foresight

Thursday, 26 May 2011

Page 35: First-Class APIs, PHPTek 11, Chicago

Finally the time/money comes

Thursday, 26 May 2011

Page 36: First-Class APIs, PHPTek 11, Chicago

Shoehorned onto the website

Thursday, 26 May 2011

Page 37: First-Class APIs, PHPTek 11, Chicago

Hot tub awkwardly attached to a house

Thursday, 26 May 2011

Page 38: First-Class APIs, PHPTek 11, Chicago

Thursday, 26 May 2011

Page 39: First-Class APIs, PHPTek 11, Chicago

Sparse Documentation

Thursday, 26 May 2011

Page 40: First-Class APIs, PHPTek 11, Chicago

Ill maintained code

Thursday, 26 May 2011

Page 41: First-Class APIs, PHPTek 11, Chicago

Lack of testing

Thursday, 26 May 2011

Page 42: First-Class APIs, PHPTek 11, Chicago

Ticket response time is in the weeks not days

Thursday, 26 May 2011

Page 43: First-Class APIs, PHPTek 11, Chicago

It is a problem with management

Thursday, 26 May 2011

Page 44: First-Class APIs, PHPTek 11, Chicago

APIs should be...

Thursday, 26 May 2011

Page 45: First-Class APIs, PHPTek 11, Chicago

First-Class Citizens

Thursday, 26 May 2011

Page 46: First-Class APIs, PHPTek 11, Chicago

Thursday, 26 May 2011

Page 47: First-Class APIs, PHPTek 11, Chicago

Inconceivable?

Thursday, 26 May 2011

Page 48: First-Class APIs, PHPTek 11, Chicago

Absolutely not!

Thursday, 26 May 2011

Page 49: First-Class APIs, PHPTek 11, Chicago

2010 Mobile

Thursday, 26 May 2011

Page 50: First-Class APIs, PHPTek 11, Chicago

2011 Tablets

Thursday, 26 May 2011

Page 51: First-Class APIs, PHPTek 11, Chicago

There are few companies that really get this

Thursday, 26 May 2011

Page 52: First-Class APIs, PHPTek 11, Chicago

Opening up the API when they release mobile clients

Thursday, 26 May 2011

Page 53: First-Class APIs, PHPTek 11, Chicago

New trend for startups

Thursday, 26 May 2011

Page 54: First-Class APIs, PHPTek 11, Chicago

Start with an APINot

a website.

Thursday, 26 May 2011

Page 55: First-Class APIs, PHPTek 11, Chicago

Start with an APINot

a website.

Thursday, 26 May 2011

Page 56: First-Class APIs, PHPTek 11, Chicago

Why do this?

Thursday, 26 May 2011

Page 57: First-Class APIs, PHPTek 11, Chicago

Mashups!

Thursday, 26 May 2011

Page 58: First-Class APIs, PHPTek 11, Chicago

Supply and Demand

Thursday, 26 May 2011

Page 59: First-Class APIs, PHPTek 11, Chicago

There is a demand for APIs

Thursday, 26 May 2011

Page 60: First-Class APIs, PHPTek 11, Chicago

Developers are the supply

Thursday, 26 May 2011

Page 61: First-Class APIs, PHPTek 11, Chicago

Going First-Class?

Thursday, 26 May 2011

Page 62: First-Class APIs, PHPTek 11, Chicago

Common architecture

Thursday, 26 May 2011

Page 63: First-Class APIs, PHPTek 11, Chicago

Data

Thursday, 26 May 2011

Page 64: First-Class APIs, PHPTek 11, Chicago

Data

Website

Thursday, 26 May 2011

Page 65: First-Class APIs, PHPTek 11, Chicago

Data

Website

MVC

Thursday, 26 May 2011

Page 66: First-Class APIs, PHPTek 11, Chicago

Data

API Website

MVC

Thursday, 26 May 2011

Page 67: First-Class APIs, PHPTek 11, Chicago

Data

API

MVC

Website

MVC

Thursday, 26 May 2011

Page 68: First-Class APIs, PHPTek 11, Chicago

Data

API

MVC

Website

MVC

REJECTEDThursday, 26 May 2011

Page 69: First-Class APIs, PHPTek 11, Chicago

Data

Thursday, 26 May 2011

Page 70: First-Class APIs, PHPTek 11, Chicago

Data

Website

Thursday, 26 May 2011

Page 71: First-Class APIs, PHPTek 11, Chicago

Data

API Website

Thursday, 26 May 2011

Page 72: First-Class APIs, PHPTek 11, Chicago

Data

API Website

MVC

Thursday, 26 May 2011

Page 73: First-Class APIs, PHPTek 11, Chicago

Data

API Website

MVC

REJECTEDThursday, 26 May 2011

Page 74: First-Class APIs, PHPTek 11, Chicago

Upgrading the API to First-Class

Thursday, 26 May 2011

Page 75: First-Class APIs, PHPTek 11, Chicago

Data

Thursday, 26 May 2011

Page 76: First-Class APIs, PHPTek 11, Chicago

Data

API

Thursday, 26 May 2011

Page 77: First-Class APIs, PHPTek 11, Chicago

Data

API

Website

MVC

Thursday, 26 May 2011

Page 78: First-Class APIs, PHPTek 11, Chicago

Data

API

Website

MVCMobile

Thursday, 26 May 2011

Page 79: First-Class APIs, PHPTek 11, Chicago

Data

API

Website

MVCMobile 3rd Party

Thursday, 26 May 2011

Page 80: First-Class APIs, PHPTek 11, Chicago

Website as a client

Thursday, 26 May 2011

Page 81: First-Class APIs, PHPTek 11, Chicago

Data

API

Mobile 3rd Party

Website

MVC

Thursday, 26 May 2011

Page 82: First-Class APIs, PHPTek 11, Chicago

Data

API

Mobile 3rd Party

Website

MVC

Thursday, 26 May 2011

Page 83: First-Class APIs, PHPTek 11, Chicago

Data

API

Mobile

JavaScript

3rd Party

Website

MVC

Thursday, 26 May 2011

Page 84: First-Class APIs, PHPTek 11, Chicago

FRAPI(getfrapi.com)

Thursday, 26 May 2011

Page 85: First-Class APIs, PHPTek 11, Chicago

API First?

Thursday, 26 May 2011

Page 86: First-Class APIs, PHPTek 11, Chicago

Ideally!

Thursday, 26 May 2011

Page 87: First-Class APIs, PHPTek 11, Chicago

At least plan for it

Thursday, 26 May 2011

Page 88: First-Class APIs, PHPTek 11, Chicago

Higher upfront cost but lower in the long term

Thursday, 26 May 2011

Page 89: First-Class APIs, PHPTek 11, Chicago

Any downsides!?

Thursday, 26 May 2011

Page 90: First-Class APIs, PHPTek 11, Chicago

Of course!

Thursday, 26 May 2011

Page 91: First-Class APIs, PHPTek 11, Chicago

Additional Overhead

Thursday, 26 May 2011

Page 92: First-Class APIs, PHPTek 11, Chicago

OAuth/Security + Website

Thursday, 26 May 2011

Page 93: First-Class APIs, PHPTek 11, Chicago

Eventually Consistent

Thursday, 26 May 2011

Page 94: First-Class APIs, PHPTek 11, Chicago

The First version always sucks

Thursday, 26 May 2011

Page 95: First-Class APIs, PHPTek 11, Chicago

Keep things internal if need be

Thursday, 26 May 2011

Page 96: First-Class APIs, PHPTek 11, Chicago

Data

API

Website

MVC

Thursday, 26 May 2011

Page 97: First-Class APIs, PHPTek 11, Chicago

Data

API

Website

MVC

Thursday, 26 May 2011

Page 98: First-Class APIs, PHPTek 11, Chicago

Data

API

Website

MVCInternal

Thursday, 26 May 2011

Page 99: First-Class APIs, PHPTek 11, Chicago

The gain?

Thursday, 26 May 2011

Page 100: First-Class APIs, PHPTek 11, Chicago

API becomes the core business

Thursday, 26 May 2011

Page 101: First-Class APIs, PHPTek 11, Chicago

Single Codebase

Thursday, 26 May 2011

Page 102: First-Class APIs, PHPTek 11, Chicago

Better Documentation

Thursday, 26 May 2011

Page 103: First-Class APIs, PHPTek 11, Chicago

More extensive tests

Thursday, 26 May 2011

Page 104: First-Class APIs, PHPTek 11, Chicago

Better response time on bugs

Thursday, 26 May 2011

Page 105: First-Class APIs, PHPTek 11, Chicago

Consistency

Thursday, 26 May 2011

Page 106: First-Class APIs, PHPTek 11, Chicago

Higher upfront cost but lower in the long term

Thursday, 26 May 2011

Page 107: First-Class APIs, PHPTek 11, Chicago

The Story of Twitter

Thursday, 26 May 2011

Page 108: First-Class APIs, PHPTek 11, Chicago

This is just an example

Thursday, 26 May 2011

Page 109: First-Class APIs, PHPTek 11, Chicago

I am not trying to be an asshole to Twitter :-)

Thursday, 26 May 2011

Page 110: First-Class APIs, PHPTek 11, Chicago

Started in 2006

Thursday, 26 May 2011

Page 111: First-Class APIs, PHPTek 11, Chicago

Took off in 2007 at SXSW

Thursday, 26 May 2011

Page 112: First-Class APIs, PHPTek 11, Chicago

20k 60k tweets per day

Thursday, 26 May 2011

Page 113: First-Class APIs, PHPTek 11, Chicago

200% Growth

Thursday, 26 May 2011

Page 114: First-Class APIs, PHPTek 11, Chicago

There was no API

Thursday, 26 May 2011

Page 115: First-Class APIs, PHPTek 11, Chicago

Developers asked for it

Thursday, 26 May 2011

Page 116: First-Class APIs, PHPTek 11, Chicago

And of course it got bolted on

Thursday, 26 May 2011

Page 117: First-Class APIs, PHPTek 11, Chicago

API was half cooked and organically grew

Thursday, 26 May 2011

Page 118: First-Class APIs, PHPTek 11, Chicago

They tried their best, but...

Thursday, 26 May 2011

Page 119: First-Class APIs, PHPTek 11, Chicago

Thursday, 26 May 2011

Page 120: First-Class APIs, PHPTek 11, Chicago

#NewTwitter in Oct 2010

Thursday, 26 May 2011

Page 121: First-Class APIs, PHPTek 11, Chicago

Web client consuming it’s own API.

Thursday, 26 May 2011

Page 122: First-Class APIs, PHPTek 11, Chicago

More care was taken on the API side

Thursday, 26 May 2011

Page 123: First-Class APIs, PHPTek 11, Chicago

What if Facebook did the same?

Thursday, 26 May 2011

Page 124: First-Class APIs, PHPTek 11, Chicago

In conclusion

Thursday, 26 May 2011

Page 125: First-Class APIs, PHPTek 11, Chicago

Treat the API as your core business

Thursday, 26 May 2011

Page 126: First-Class APIs, PHPTek 11, Chicago

Or at least plan it from the start

Thursday, 26 May 2011

Page 127: First-Class APIs, PHPTek 11, Chicago

Thursday, 26 May 2011

Page 128: First-Class APIs, PHPTek 11, Chicago

ClientsLogin

Image Hosting

URL Shorteners

Analytics

etc

etc

etc

Thursday, 26 May 2011

Page 129: First-Class APIs, PHPTek 11, Chicago

ApiGee & Mashery

Thursday, 26 May 2011

Page 130: First-Class APIs, PHPTek 11, Chicago

Outsource the innovation of UX to people who know

how to!

Thursday, 26 May 2011

Page 131: First-Class APIs, PHPTek 11, Chicago

Thursday, 26 May 2011

Page 132: First-Class APIs, PHPTek 11, Chicago

NO MORE

Thursday, 26 May 2011

Page 133: First-Class APIs, PHPTek 11, Chicago

Thanks for coming!

Joind.in: http://joind.in/3400

@[email protected]

Thursday, 26 May 2011