SlideShare a Scribd company logo
1 of 104
Download to read offline
First-Class APIs


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

Tuesday, 24 May 2011
Hi there, I’m Helgi



Tuesday, 24 May 2011
VP of Engineering at Orchestra.io




Tuesday, 24 May 2011
VP of Engineering at Orchestra.io
                       Developer at PEAR




Tuesday, 24 May 2011
VP of Engineering at Orchestra.io
                       Developer at PEAR
                       From Iceland




Tuesday, 24 May 2011
VP of Engineering at Orchestra.io
                       Developer at PEAR
                       From Iceland
                       @h on Twitter




Tuesday, 24 May 2011
1995           2000   2005            2010


                                                    John Musser
                                     Founder, Programmable Web

Tuesday, 24 May 2011
Why do we need
           a website?




        1995              2000   2005            2010


                                                       John Musser
                                        Founder, Programmable Web

Tuesday, 24 May 2011
Why do we need    Of course we
           a website?     have a website




        1995               2000            2005            2010


                                                                 John Musser
                                                  Founder, Programmable Web

Tuesday, 24 May 2011
Why do we need    Of course we    Why do we need
           a website?     have a website      an API?




        1995               2000               2005                   2010


                                                                           John Musser
                                                            Founder, Programmable Web

Tuesday, 24 May 2011
Why do we need    Of course we    Why do we need        Of course we
           a website?     have a website      an API?            have an API




        1995               2000               2005                   2010


                                                                           John Musser
                                                            Founder, Programmable Web

Tuesday, 24 May 2011
Data is the new business model




Tuesday, 24 May 2011
APIs are the business glue




Tuesday, 24 May 2011
Business without an API?




Tuesday, 24 May 2011
Developers hunger to use
                              your data




Tuesday, 24 May 2011
Do not keep it all to your self




Tuesday, 24 May 2011
The data wasn’t yours to
                             begin with!




Tuesday, 24 May 2011
Tuesday, 24 May 2011
Mine?            Mine?     Mine?

                                             Mine?
                                                     Mine?
                       Mine?
                                 Mine?



                               Mine?

                                         Mine?




Tuesday, 24 May 2011
Not everyone believes this




Tuesday, 24 May 2011
They do like their ivory towers




Tuesday, 24 May 2011
For years APIs have been
                             treated as...




Tuesday, 24 May 2011
Second-Class
                          Citizen


Tuesday, 24 May 2011
Why?



Tuesday, 24 May 2011
It’s a conceptional problem




Tuesday, 24 May 2011
Companies believing they will
            lose business if they share




Tuesday, 24 May 2011
Websites are considered the
                        business




Tuesday, 24 May 2011
Not the API




Tuesday, 24 May 2011
APIs are for the cool kids




Tuesday, 24 May 2011
Or...




Tuesday, 24 May 2011
Not enough money




Tuesday, 24 May 2011
Not enough time




Tuesday, 24 May 2011
Not enough resources




Tuesday, 24 May 2011
Not enough foresight




Tuesday, 24 May 2011
Finally the time/money comes




Tuesday, 24 May 2011
Shoehorned onto the website




Tuesday, 24 May 2011
Hot tub awkwardly
                       attached to a house




Tuesday, 24 May 2011
Tuesday, 24 May 2011
Sparse Documentation




Tuesday, 24 May 2011
Ill maintained code




Tuesday, 24 May 2011
Lack of testing




Tuesday, 24 May 2011
Ticket response time is in the
                     weeks not days




Tuesday, 24 May 2011
It is a problem with management




Tuesday, 24 May 2011
APIs should be...



Tuesday, 24 May 2011
First-Class Citizens



Tuesday, 24 May 2011
Tuesday, 24 May 2011
Inconceivable?



Tuesday, 24 May 2011
Absolutely not!



Tuesday, 24 May 2011
2010 Mobile

Tuesday, 24 May 2011
2011 Tablets

Tuesday, 24 May 2011
There are few companies
                          that really get this




Tuesday, 24 May 2011
Opening up the API when
                  they release mobile clients




Tuesday, 24 May 2011
New trend for
                         startups


Tuesday, 24 May 2011
Start with an API
                              Not
                          a website.



Tuesday, 24 May 2011
Start with an API
                              Not
                          a website.



Tuesday, 24 May 2011
Why do this?



Tuesday, 24 May 2011
Mashups!




Tuesday, 24 May 2011
Supply and Demand




Tuesday, 24 May 2011
There is a demand for APIs




Tuesday, 24 May 2011
Developers are the supply




Tuesday, 24 May 2011
Going First-Class?



Tuesday, 24 May 2011
Common architecture




Tuesday, 24 May 2011
Data




                       MVC           MVC




                       API          Website

Tuesday, 24 May 2011
RE     Data


                             JE
                       MVC     CT     MVC


                                     ED
                       API           Website

Tuesday, 24 May 2011
Data




                             MVC




                       API          Website

Tuesday, 24 May 2011
RE     Data


                             JE
                               CT
                              MVC


                                     ED
                       API           Website

Tuesday, 24 May 2011
Upgrading the API
                     to First-Class


Tuesday, 24 May 2011
Data



                         API



            Mobile      MVC      3rd Party


                       Website
Tuesday, 24 May 2011
Website as a client



Tuesday, 24 May 2011
Data



                         API



            Mobile      MVC      3rd Party


 JavaScript            Website
Tuesday, 24 May 2011
FRAPI
                       (getfrapi.com)




Tuesday, 24 May 2011
Any downsides!?



Tuesday, 24 May 2011
Of course!



Tuesday, 24 May 2011
The gain?



Tuesday, 24 May 2011
API becomes the core business




Tuesday, 24 May 2011
Better Documentation




Tuesday, 24 May 2011
More extensive tests




Tuesday, 24 May 2011
Better response time on bugs




Tuesday, 24 May 2011
Consistency




Tuesday, 24 May 2011
Higher upfront cost but
                       lower in the long term




Tuesday, 24 May 2011
Twitter



Tuesday, 24 May 2011
Started in 2006




Tuesday, 24 May 2011
Took off in 2007 at SXSW




Tuesday, 24 May 2011
20k    60k
                       tweets per day



Tuesday, 24 May 2011
200% Growth


Tuesday, 24 May 2011
There was no API




Tuesday, 24 May 2011
Developers asked for it




Tuesday, 24 May 2011
And of course it got bolted on




Tuesday, 24 May 2011
API was half cooked and
                           organically grew




Tuesday, 24 May 2011
They tried their best, but...




Tuesday, 24 May 2011
Tuesday, 24 May 2011
#NewTwitter in Oct 2010




Tuesday, 24 May 2011
Web client consuming it’s
                               own API.




Tuesday, 24 May 2011
More care was taken on the
                           API side




Tuesday, 24 May 2011
What if Facebook
                        did the same?


Tuesday, 24 May 2011
In conclusion



Tuesday, 24 May 2011
Treat the API as your core
                                business




Tuesday, 24 May 2011
Or at least plan it
                        from the start




Tuesday, 24 May 2011
Tuesday, 24 May 2011
Clients      URL
                        Login
                                           Shorteners




                         etc                 etc




                        Image
                                   etc     Analytics
                       Hosting


Tuesday, 24 May 2011
Outsource the innovation of
                 UX to people who know
                         how to!



Tuesday, 24 May 2011
Tuesday, 24 May 2011
N
                        O
                            M
                             OR
                                E
Tuesday, 24 May 2011
Thanks for coming!

                       @h
                       helgi@orchestra.io




                       Joind.in: http://joind.in/3241
Tuesday, 24 May 2011

More Related Content

More from Helgi Þormar Þorbjörnsson

Scale like an ant, distribute the workload - DPC, Amsterdam, 2011
Scale like an ant, distribute the workload - DPC, Amsterdam,  2011Scale like an ant, distribute the workload - DPC, Amsterdam,  2011
Scale like an ant, distribute the workload - DPC, Amsterdam, 2011Helgi Þormar Þorbjörnsson
 
Think like an ant, distribute the workload - PhpDay, Italy, 2011
Think like an ant, distribute the workload - PhpDay, Italy, 2011Think like an ant, distribute the workload - PhpDay, Italy, 2011
Think like an ant, distribute the workload - PhpDay, Italy, 2011Helgi Þormar Þorbjörnsson
 
Plant Pyrus in your system - A guide to a plugin system.
Plant Pyrus in your system - A guide to a plugin system.Plant Pyrus in your system - A guide to a plugin system.
Plant Pyrus in your system - A guide to a plugin system.Helgi Þormar Þorbjörnsson
 
Website releases made easy with the PEAR installer, OSCON 2009
Website releases made easy with the PEAR installer, OSCON 2009Website releases made easy with the PEAR installer, OSCON 2009
Website releases made easy with the PEAR installer, OSCON 2009Helgi Þormar Þorbjörnsson
 
Website releases made easy with the PEAR installer - Barcelona 2008
Website releases made easy with the PEAR installer - Barcelona 2008Website releases made easy with the PEAR installer - Barcelona 2008
Website releases made easy with the PEAR installer - Barcelona 2008Helgi Þormar Þorbjörnsson
 

More from Helgi Þormar Þorbjörnsson (18)

Phar, The PHP .exe Format
Phar, The PHP .exe FormatPhar, The PHP .exe Format
Phar, The PHP .exe Format
 
Distribute the workload, PHP Barcelona 2011
Distribute the workload, PHP Barcelona 2011Distribute the workload, PHP Barcelona 2011
Distribute the workload, PHP Barcelona 2011
 
Distribute the workload, PHPTek, Amsterdam, 2011
Distribute the workload, PHPTek, Amsterdam, 2011Distribute the workload, PHPTek, Amsterdam, 2011
Distribute the workload, PHPTek, Amsterdam, 2011
 
Frontend Caching, PHPTek 2011, Chicago
Frontend Caching, PHPTek 2011, ChicagoFrontend Caching, PHPTek 2011, Chicago
Frontend Caching, PHPTek 2011, Chicago
 
Scale like an ant, distribute the workload - DPC, Amsterdam, 2011
Scale like an ant, distribute the workload - DPC, Amsterdam,  2011Scale like an ant, distribute the workload - DPC, Amsterdam,  2011
Scale like an ant, distribute the workload - DPC, Amsterdam, 2011
 
Think like an ant, distribute the workload - PhpDay, Italy, 2011
Think like an ant, distribute the workload - PhpDay, Italy, 2011Think like an ant, distribute the workload - PhpDay, Italy, 2011
Think like an ant, distribute the workload - PhpDay, Italy, 2011
 
Frontend caching - PHP Day, Italy, 2011
Frontend caching - PHP Day, Italy, 2011Frontend caching - PHP Day, Italy, 2011
Frontend caching - PHP Day, Italy, 2011
 
Frontend caching
Frontend cachingFrontend caching
Frontend caching
 
Plant Pyrus in your system - A guide to a plugin system.
Plant Pyrus in your system - A guide to a plugin system.Plant Pyrus in your system - A guide to a plugin system.
Plant Pyrus in your system - A guide to a plugin system.
 
PEAR2 & Pyrus - The look ahead
PEAR2 & Pyrus - The look aheadPEAR2 & Pyrus - The look ahead
PEAR2 & Pyrus - The look ahead
 
Frontend Caching - The "new" frontier
Frontend Caching - The "new" frontierFrontend Caching - The "new" frontier
Frontend Caching - The "new" frontier
 
Caching for Cash, part 4 DPC 2009
Caching for Cash, part 4 DPC 2009Caching for Cash, part 4 DPC 2009
Caching for Cash, part 4 DPC 2009
 
Cashing For Cash, part 1 DPC 2009
Cashing For Cash, part 1 DPC 2009Cashing For Cash, part 1 DPC 2009
Cashing For Cash, part 1 DPC 2009
 
Website releases made easy with the PEAR installer, OSCON 2009
Website releases made easy with the PEAR installer, OSCON 2009Website releases made easy with the PEAR installer, OSCON 2009
Website releases made easy with the PEAR installer, OSCON 2009
 
Caching for Cash - Part 4
Caching for Cash - Part 4Caching for Cash - Part 4
Caching for Cash - Part 4
 
Caching for Cash - Part 1
Caching for Cash - Part 1Caching for Cash - Part 1
Caching for Cash - Part 1
 
Coping with Cyber Monday
Coping with Cyber MondayCoping with Cyber Monday
Coping with Cyber Monday
 
Website releases made easy with the PEAR installer - Barcelona 2008
Website releases made easy with the PEAR installer - Barcelona 2008Website releases made easy with the PEAR installer - Barcelona 2008
Website releases made easy with the PEAR installer - Barcelona 2008
 

Recently uploaded

Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 

Recently uploaded (20)

Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 

First-Class APIs, DPC 2011, Amsterdam