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

Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsPrecisely
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsAndrey Dotsenko
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 

Recently uploaded (20)

Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power Systems
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 

First-Class APIs, PHPTek 11, Chicago