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


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

Thursday, 26 May 2011
Hi there, I’m Helgi



Thursday, 26 May 2011
VP of Engineering at Orchestra.io




Thursday, 26 May 2011
VP of Engineering at Orchestra.io
                        Developer at PEAR




Thursday, 26 May 2011
VP of Engineering at Orchestra.io
                        Developer at PEAR
                        From Iceland




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




Thursday, 26 May 2011
1995           2000   2005            2010


                                                     John Musser
                                      Founder, Programmable Web

Thursday, 26 May 2011
Why do we need
            a website?




         1995              2000   2005            2010


                                                        John Musser
                                         Founder, Programmable Web

Thursday, 26 May 2011
Why do we need    Of course we
            a website?     have a website




         1995               2000            2005            2010


                                                                  John Musser
                                                   Founder, Programmable Web

Thursday, 26 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

Thursday, 26 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

Thursday, 26 May 2011
Data is the new business model




Thursday, 26 May 2011
APIs are the business glue




Thursday, 26 May 2011
Business without an API?




Thursday, 26 May 2011
Developers hunger to use
                               your data




Thursday, 26 May 2011
Do not keep it all to your self




Thursday, 26 May 2011
The data wasn’t yours to
                              begin with!




Thursday, 26 May 2011
Thursday, 26 May 2011
Mine?             Mine?     Mine?

                                              Mine?
                                                      Mine?
                        Mine?
                                  Mine?



                                Mine?

                                          Mine?




Thursday, 26 May 2011
Not everyone believes this




Thursday, 26 May 2011
They do like their ivory towers




Thursday, 26 May 2011
For years APIs have been
                              treated as...




Thursday, 26 May 2011
Second-Class
                           Citizen


Thursday, 26 May 2011
Why?



Thursday, 26 May 2011
It’s a conceptional problem




Thursday, 26 May 2011
Companies believe they will
                 lose business if they share




Thursday, 26 May 2011
Websites are considered the
                        business




Thursday, 26 May 2011
Not the API




Thursday, 26 May 2011
APIs are for the cool kids




Thursday, 26 May 2011
Or...




Thursday, 26 May 2011
Not enough money




Thursday, 26 May 2011
Not enough time




Thursday, 26 May 2011
Not enough resources




Thursday, 26 May 2011
Not enough foresight




Thursday, 26 May 2011
Finally the time/money comes




Thursday, 26 May 2011
Shoehorned onto the website




Thursday, 26 May 2011
Hot tub awkwardly
                        attached to a house




Thursday, 26 May 2011
Thursday, 26 May 2011
Sparse Documentation




Thursday, 26 May 2011
Ill maintained code




Thursday, 26 May 2011
Lack of testing




Thursday, 26 May 2011
Ticket response time is in the
                     weeks not days




Thursday, 26 May 2011
It is a problem with management




Thursday, 26 May 2011
APIs should be...



Thursday, 26 May 2011
First-Class Citizens



Thursday, 26 May 2011
Thursday, 26 May 2011
Inconceivable?



Thursday, 26 May 2011
Absolutely not!



Thursday, 26 May 2011
2010 Mobile

Thursday, 26 May 2011
2011 Tablets

Thursday, 26 May 2011
There are few companies
                           that really get this




Thursday, 26 May 2011
Opening up the API when
                  they release mobile clients




Thursday, 26 May 2011
New trend for
                          startups


Thursday, 26 May 2011
Start with an API
                               Not
                           a website.



Thursday, 26 May 2011
Start with an API
                               Not
                           a website.



Thursday, 26 May 2011
Why do this?



Thursday, 26 May 2011
Mashups!




Thursday, 26 May 2011
Supply and Demand




Thursday, 26 May 2011
There is a demand for APIs




Thursday, 26 May 2011
Developers are the supply




Thursday, 26 May 2011
Going First-Class?



Thursday, 26 May 2011
Common architecture




Thursday, 26 May 2011
Data




Thursday, 26 May 2011
Data




                               Website

Thursday, 26 May 2011
Data




                                MVC




                               Website

Thursday, 26 May 2011
Data




                                      MVC




                        API          Website

Thursday, 26 May 2011
Data




                        MVC           MVC




                        API          Website

Thursday, 26 May 2011
RE     Data


                              JE
                        MVC     CT     MVC


                                      ED
                        API           Website

Thursday, 26 May 2011
Data




Thursday, 26 May 2011
Data




                               Website

Thursday, 26 May 2011
Data




                        API          Website

Thursday, 26 May 2011
Data




                              MVC




                        API          Website

Thursday, 26 May 2011
RE     Data


                              JE
                                CT
                               MVC


                                      ED
                        API           Website

Thursday, 26 May 2011
Upgrading the API
                     to First-Class


Thursday, 26 May 2011
Data




Thursday, 26 May 2011
Data



                        API




Thursday, 26 May 2011
Data



                          API



                         MVC



                        Website
Thursday, 26 May 2011
Data



                          API



            Mobile       MVC



                        Website
Thursday, 26 May 2011
Data



                          API



            Mobile       MVC      3rd Party


                        Website
Thursday, 26 May 2011
Website as a client



Thursday, 26 May 2011
Data



                          API



            Mobile       MVC      3rd Party


                        Website
Thursday, 26 May 2011
Data



                          API



            Mobile       MVC      3rd Party


                        Website
Thursday, 26 May 2011
Data



                          API



            Mobile       MVC      3rd Party


 JavaScript             Website
Thursday, 26 May 2011
FRAPI
                        (getfrapi.com)




Thursday, 26 May 2011
API First?




Thursday, 26 May 2011
Ideally!




Thursday, 26 May 2011
At least plan for it




Thursday, 26 May 2011
Higher upfront cost but
                        lower in the long term




Thursday, 26 May 2011
Any downsides!?



Thursday, 26 May 2011
Of course!



Thursday, 26 May 2011
Additional Overhead




Thursday, 26 May 2011
OAuth/Security + Website




Thursday, 26 May 2011
Eventually Consistent




Thursday, 26 May 2011
The First version always sucks




Thursday, 26 May 2011
Keep things internal if need be




Thursday, 26 May 2011
Data



                          API



                         MVC



                        Website
Thursday, 26 May 2011
Data



                          API



                         MVC



                        Website
Thursday, 26 May 2011
Data



                            API



                           MVC
               Internal


                          Website
Thursday, 26 May 2011
The gain?



Thursday, 26 May 2011
API becomes the core business




Thursday, 26 May 2011
Single Codebase




Thursday, 26 May 2011
Better Documentation




Thursday, 26 May 2011
More extensive tests




Thursday, 26 May 2011
Better response time on bugs




Thursday, 26 May 2011
Consistency




Thursday, 26 May 2011
Higher upfront cost but
                        lower in the long term




Thursday, 26 May 2011
The Story of
                          Twitter


Thursday, 26 May 2011
This is just an example




Thursday, 26 May 2011
I am not trying to be an
                          asshole to Twitter :-)




Thursday, 26 May 2011
Started in 2006




Thursday, 26 May 2011
Took off in 2007 at SXSW




Thursday, 26 May 2011
20k    60k
                        tweets per day



Thursday, 26 May 2011
200% Growth


Thursday, 26 May 2011
There was no API




Thursday, 26 May 2011
Developers asked for it




Thursday, 26 May 2011
And of course it got bolted on




Thursday, 26 May 2011
API was half cooked and
                            organically grew




Thursday, 26 May 2011
They tried their best, but...




Thursday, 26 May 2011
Thursday, 26 May 2011
#NewTwitter in Oct 2010




Thursday, 26 May 2011
Web client consuming it’s
                                own API.




Thursday, 26 May 2011
More care was taken on the
                           API side




Thursday, 26 May 2011
What if Facebook
                         did the same?


Thursday, 26 May 2011
In conclusion



Thursday, 26 May 2011
Treat the API as your core
                                 business




Thursday, 26 May 2011
Or at least plan it
                         from the start




Thursday, 26 May 2011
Thursday, 26 May 2011
Clients      URL
                         Login
                                            Shorteners




                          etc                 etc




                         Image
                                    etc     Analytics
                        Hosting


Thursday, 26 May 2011
ApiGee & Mashery



Thursday, 26 May 2011
Outsource the innovation of
                 UX to people who know
                         how to!



Thursday, 26 May 2011
Thursday, 26 May 2011
N
                         O
                             M
                              OR
                                 E
Thursday, 26 May 2011
Thanks for coming!

                                    @h
                            helgi@orchestra.io




                        Joind.in: http://joind.in/3400
Thursday, 26 May 2011

More Related Content

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

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

UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UbiTrack UK
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.YounusS2
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesDavid Newbury
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsSafe Software
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding TeamAdam Moalla
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8DianaGray10
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024SkyPlanner
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfJamie (Taka) Wang
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostMatt Ray
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...Aggregage
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemAsko Soukka
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopBachir Benyammi
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPathCommunity
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXTarek Kalaji
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Brian Pichman
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsSeth Reyes
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...DianaGray10
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfDianaGray10
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6DianaGray10
 
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-pyJamie (Taka) Wang
 

Recently uploaded (20)

UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond Ontologies
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation Developers
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBX
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and Hazards
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6
 
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-py
 

First-Class APIs, PHPTek 11, Chicago