104
First-Class APIs Helgi Þormar Þorbjörnsson Dutch PHP Conference, Amsterdam, 21st May 2011 Tuesday, 24 May 2011

First-Class APIs, DPC 2011, Amsterdam

  • View
    3.310

  • Download
    2

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, DPC 2011, Amsterdam

First-Class APIs

Helgi Þormar ÞorbjörnssonDutch PHP Conference, Amsterdam, 21st May 2011

Tuesday, 24 May 2011

Page 2: First-Class APIs, DPC 2011, Amsterdam

Hi there, I’m Helgi

Tuesday, 24 May 2011

Page 3: First-Class APIs, DPC 2011, Amsterdam

VP of Engineering at Orchestra.io

Tuesday, 24 May 2011

Page 4: First-Class APIs, DPC 2011, Amsterdam

VP of Engineering at Orchestra.io

Developer at PEAR

Tuesday, 24 May 2011

Page 5: First-Class APIs, DPC 2011, Amsterdam

VP of Engineering at Orchestra.io

Developer at PEAR

From Iceland

Tuesday, 24 May 2011

Page 6: First-Class APIs, DPC 2011, Amsterdam

VP of Engineering at Orchestra.io

Developer at PEAR

From Iceland

@h on Twitter

Tuesday, 24 May 2011

Page 7: First-Class APIs, DPC 2011, Amsterdam

1995 2000 2005 2010

John MusserFounder, Programmable Web

Tuesday, 24 May 2011

Page 8: First-Class APIs, DPC 2011, Amsterdam

Why do we need a website?

1995 2000 2005 2010

John MusserFounder, Programmable Web

Tuesday, 24 May 2011

Page 9: First-Class APIs, DPC 2011, Amsterdam

Why do we need a website?

Of course we have a website

1995 2000 2005 2010

John MusserFounder, Programmable Web

Tuesday, 24 May 2011

Page 10: First-Class APIs, DPC 2011, Amsterdam

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

Tuesday, 24 May 2011

Page 11: First-Class APIs, DPC 2011, Amsterdam

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

Tuesday, 24 May 2011

Page 12: First-Class APIs, DPC 2011, Amsterdam

Data is the new business model

Tuesday, 24 May 2011

Page 13: First-Class APIs, DPC 2011, Amsterdam

APIs are the business glue

Tuesday, 24 May 2011

Page 14: First-Class APIs, DPC 2011, Amsterdam

Business without an API?

Tuesday, 24 May 2011

Page 15: First-Class APIs, DPC 2011, Amsterdam

Developers hunger to use your data

Tuesday, 24 May 2011

Page 16: First-Class APIs, DPC 2011, Amsterdam

Do not keep it all to your self

Tuesday, 24 May 2011

Page 17: First-Class APIs, DPC 2011, Amsterdam

The data wasn’t yours to begin with!

Tuesday, 24 May 2011

Page 18: First-Class APIs, DPC 2011, Amsterdam

Tuesday, 24 May 2011

Page 19: First-Class APIs, DPC 2011, Amsterdam

Mine?Mine?Mine?Mine?

Mine? Mine?

Mine?

Mine?

Mine?

Tuesday, 24 May 2011

Page 20: First-Class APIs, DPC 2011, Amsterdam

Not everyone believes this

Tuesday, 24 May 2011

Page 21: First-Class APIs, DPC 2011, Amsterdam

They do like their ivory towers

Tuesday, 24 May 2011

Page 22: First-Class APIs, DPC 2011, Amsterdam

For years APIs have been treated as...

Tuesday, 24 May 2011

Page 23: First-Class APIs, DPC 2011, Amsterdam

Second-Class Citizen

Tuesday, 24 May 2011

Page 24: First-Class APIs, DPC 2011, Amsterdam

Why?

Tuesday, 24 May 2011

Page 25: First-Class APIs, DPC 2011, Amsterdam

It’s a conceptional problem

Tuesday, 24 May 2011

Page 26: First-Class APIs, DPC 2011, Amsterdam

Companies believing they will lose business if they share

Tuesday, 24 May 2011

Page 27: First-Class APIs, DPC 2011, Amsterdam

Websites are considered the business

Tuesday, 24 May 2011

Page 28: First-Class APIs, DPC 2011, Amsterdam

Not the API

Tuesday, 24 May 2011

Page 29: First-Class APIs, DPC 2011, Amsterdam

APIs are for the cool kids

Tuesday, 24 May 2011

Page 30: First-Class APIs, DPC 2011, Amsterdam

Or...

Tuesday, 24 May 2011

Page 31: First-Class APIs, DPC 2011, Amsterdam

Not enough money

Tuesday, 24 May 2011

Page 32: First-Class APIs, DPC 2011, Amsterdam

Not enough time

Tuesday, 24 May 2011

Page 33: First-Class APIs, DPC 2011, Amsterdam

Not enough resources

Tuesday, 24 May 2011

Page 34: First-Class APIs, DPC 2011, Amsterdam

Not enough foresight

Tuesday, 24 May 2011

Page 35: First-Class APIs, DPC 2011, Amsterdam

Finally the time/money comes

Tuesday, 24 May 2011

Page 36: First-Class APIs, DPC 2011, Amsterdam

Shoehorned onto the website

Tuesday, 24 May 2011

Page 37: First-Class APIs, DPC 2011, Amsterdam

Hot tub awkwardly attached to a house

Tuesday, 24 May 2011

Page 38: First-Class APIs, DPC 2011, Amsterdam

Tuesday, 24 May 2011

Page 39: First-Class APIs, DPC 2011, Amsterdam

Sparse Documentation

Tuesday, 24 May 2011

Page 40: First-Class APIs, DPC 2011, Amsterdam

Ill maintained code

Tuesday, 24 May 2011

Page 41: First-Class APIs, DPC 2011, Amsterdam

Lack of testing

Tuesday, 24 May 2011

Page 42: First-Class APIs, DPC 2011, Amsterdam

Ticket response time is in the weeks not days

Tuesday, 24 May 2011

Page 43: First-Class APIs, DPC 2011, Amsterdam

It is a problem with management

Tuesday, 24 May 2011

Page 44: First-Class APIs, DPC 2011, Amsterdam

APIs should be...

Tuesday, 24 May 2011

Page 45: First-Class APIs, DPC 2011, Amsterdam

First-Class Citizens

Tuesday, 24 May 2011

Page 46: First-Class APIs, DPC 2011, Amsterdam

Tuesday, 24 May 2011

Page 47: First-Class APIs, DPC 2011, Amsterdam

Inconceivable?

Tuesday, 24 May 2011

Page 48: First-Class APIs, DPC 2011, Amsterdam

Absolutely not!

Tuesday, 24 May 2011

Page 49: First-Class APIs, DPC 2011, Amsterdam

2010 Mobile

Tuesday, 24 May 2011

Page 50: First-Class APIs, DPC 2011, Amsterdam

2011 Tablets

Tuesday, 24 May 2011

Page 51: First-Class APIs, DPC 2011, Amsterdam

There are few companies that really get this

Tuesday, 24 May 2011

Page 52: First-Class APIs, DPC 2011, Amsterdam

Opening up the API when they release mobile clients

Tuesday, 24 May 2011

Page 53: First-Class APIs, DPC 2011, Amsterdam

New trend for startups

Tuesday, 24 May 2011

Page 54: First-Class APIs, DPC 2011, Amsterdam

Start with an APINot

a website.

Tuesday, 24 May 2011

Page 55: First-Class APIs, DPC 2011, Amsterdam

Start with an APINot

a website.

Tuesday, 24 May 2011

Page 56: First-Class APIs, DPC 2011, Amsterdam

Why do this?

Tuesday, 24 May 2011

Page 57: First-Class APIs, DPC 2011, Amsterdam

Mashups!

Tuesday, 24 May 2011

Page 58: First-Class APIs, DPC 2011, Amsterdam

Supply and Demand

Tuesday, 24 May 2011

Page 59: First-Class APIs, DPC 2011, Amsterdam

There is a demand for APIs

Tuesday, 24 May 2011

Page 60: First-Class APIs, DPC 2011, Amsterdam

Developers are the supply

Tuesday, 24 May 2011

Page 61: First-Class APIs, DPC 2011, Amsterdam

Going First-Class?

Tuesday, 24 May 2011

Page 62: First-Class APIs, DPC 2011, Amsterdam

Common architecture

Tuesday, 24 May 2011

Page 63: First-Class APIs, DPC 2011, Amsterdam

Data

API Website

MVCMVC

Tuesday, 24 May 2011

Page 64: First-Class APIs, DPC 2011, Amsterdam

Data

API Website

MVCMVC

REJECTEDTuesday, 24 May 2011

Page 65: First-Class APIs, DPC 2011, Amsterdam

Data

API Website

MVC

Tuesday, 24 May 2011

Page 66: First-Class APIs, DPC 2011, Amsterdam

Data

API Website

MVC

REJECTEDTuesday, 24 May 2011

Page 67: First-Class APIs, DPC 2011, Amsterdam

Upgrading the API to First-Class

Tuesday, 24 May 2011

Page 68: First-Class APIs, DPC 2011, Amsterdam

Data

API

Website

MVC 3rd PartyMobile

Tuesday, 24 May 2011

Page 69: First-Class APIs, DPC 2011, Amsterdam

Website as a client

Tuesday, 24 May 2011

Page 70: First-Class APIs, DPC 2011, Amsterdam

Data

API

Website

MVC 3rd PartyMobile

JavaScript

Tuesday, 24 May 2011

Page 71: First-Class APIs, DPC 2011, Amsterdam

FRAPI(getfrapi.com)

Tuesday, 24 May 2011

Page 72: First-Class APIs, DPC 2011, Amsterdam

Any downsides!?

Tuesday, 24 May 2011

Page 73: First-Class APIs, DPC 2011, Amsterdam

Of course!

Tuesday, 24 May 2011

Page 74: First-Class APIs, DPC 2011, Amsterdam

The gain?

Tuesday, 24 May 2011

Page 75: First-Class APIs, DPC 2011, Amsterdam

API becomes the core business

Tuesday, 24 May 2011

Page 76: First-Class APIs, DPC 2011, Amsterdam

Better Documentation

Tuesday, 24 May 2011

Page 77: First-Class APIs, DPC 2011, Amsterdam

More extensive tests

Tuesday, 24 May 2011

Page 78: First-Class APIs, DPC 2011, Amsterdam

Better response time on bugs

Tuesday, 24 May 2011

Page 79: First-Class APIs, DPC 2011, Amsterdam

Consistency

Tuesday, 24 May 2011

Page 80: First-Class APIs, DPC 2011, Amsterdam

Higher upfront cost but lower in the long term

Tuesday, 24 May 2011

Page 81: First-Class APIs, DPC 2011, Amsterdam

Twitter

Tuesday, 24 May 2011

Page 82: First-Class APIs, DPC 2011, Amsterdam

Started in 2006

Tuesday, 24 May 2011

Page 83: First-Class APIs, DPC 2011, Amsterdam

Took off in 2007 at SXSW

Tuesday, 24 May 2011

Page 84: First-Class APIs, DPC 2011, Amsterdam

20k 60k tweets per day

Tuesday, 24 May 2011

Page 85: First-Class APIs, DPC 2011, Amsterdam

200% Growth

Tuesday, 24 May 2011

Page 86: First-Class APIs, DPC 2011, Amsterdam

There was no API

Tuesday, 24 May 2011

Page 87: First-Class APIs, DPC 2011, Amsterdam

Developers asked for it

Tuesday, 24 May 2011

Page 88: First-Class APIs, DPC 2011, Amsterdam

And of course it got bolted on

Tuesday, 24 May 2011

Page 89: First-Class APIs, DPC 2011, Amsterdam

API was half cooked and organically grew

Tuesday, 24 May 2011

Page 90: First-Class APIs, DPC 2011, Amsterdam

They tried their best, but...

Tuesday, 24 May 2011

Page 91: First-Class APIs, DPC 2011, Amsterdam

Tuesday, 24 May 2011

Page 92: First-Class APIs, DPC 2011, Amsterdam

#NewTwitter in Oct 2010

Tuesday, 24 May 2011

Page 93: First-Class APIs, DPC 2011, Amsterdam

Web client consuming it’s own API.

Tuesday, 24 May 2011

Page 94: First-Class APIs, DPC 2011, Amsterdam

More care was taken on the API side

Tuesday, 24 May 2011

Page 95: First-Class APIs, DPC 2011, Amsterdam

What if Facebook did the same?

Tuesday, 24 May 2011

Page 96: First-Class APIs, DPC 2011, Amsterdam

In conclusion

Tuesday, 24 May 2011

Page 97: First-Class APIs, DPC 2011, Amsterdam

Treat the API as your core business

Tuesday, 24 May 2011

Page 98: First-Class APIs, DPC 2011, Amsterdam

Or at least plan it from the start

Tuesday, 24 May 2011

Page 99: First-Class APIs, DPC 2011, Amsterdam

Tuesday, 24 May 2011

Page 100: First-Class APIs, DPC 2011, Amsterdam

ClientsLogin

Image Hosting

URL Shorteners

Analytics

etc

etc

etc

Tuesday, 24 May 2011

Page 101: First-Class APIs, DPC 2011, Amsterdam

Outsource the innovation of UX to people who know

how to!

Tuesday, 24 May 2011

Page 102: First-Class APIs, DPC 2011, Amsterdam

Tuesday, 24 May 2011

Page 103: First-Class APIs, DPC 2011, Amsterdam

NO MORE

Tuesday, 24 May 2011

Page 104: First-Class APIs, DPC 2011, Amsterdam

Thanks for coming!

Joind.in: http://joind.in/3241

@[email protected]

Tuesday, 24 May 2011