SlideShare a Scribd company logo
1 of 72
Download to read offline
What Makes a
Great Open API?
  John	
  Musser,	
  ProgrammableWeb	
  
             @johnmusser	
  
              OSCON	
  2012	
  
                       	
  
yea  rs	
  
7	
                  Is	
  
      ,000 	
  AP                 tor ies	
  
 6
               	
  new      s	
  s
   3   ,000
Why does having
  a great API
    matter?
API growth rate
Based on directory of 6,000 web APIs listed at ProgrammableWeb, May 2012
3	
  Months	
  


                                                                         4	
  Months	
  


                                                                     6	
  Months	
  


                                                              9	
  Months	
  


                                                  18	
  Months	
  


                      8	
  Years	
  




               API growth rate
Based on directory of 6,000 web APIs listed at ProgrammableWeb, May 2012
API Billionaires Club
  13 billion API calls / day (May 2011)
  5 billion API calls / day     (April 2010)



  5 billion API calls / day (October 2009)

  1.4 billion API calls / day (May 2012)

  1.1 billion API calls / day (April 2011)

  1 billion API calls / day (May 2012)
  1 billion API calls / day     (Q1 2012)


  1 billion API calls / day     (January 2012)
Apps & devices everywhere
5 Keys to a Great API
       Valuable
       Planned
       Flexible
       Managed
      Supported
5 Keys to a Great API
A valuable service (data, function, audience, )
                                             …




  A plan and a business model
Simple, flexible, easily adopted
    Managed and measured
    Great developer support
Each “key” has
      two sides:
business & technology
   (each supports the other)
Each “key” has
      two sides:
business & technology
       (today’s talk)
ET #1
      I SECR
A   P

       These are really,
       really hard to do
             right
5 Keys to a Great API
       Valuable
       Planned
       Flexible
       Managed
      Supported
Valuable Service
Valuable Data
Valuable Audience
Valuable Function
Valuable Marketplace
Valuable Access
ET #2
      I SECR
A   P

A very valuable service
 hides many API sins
the API Value Corollary
        The API value corollary



               A great API on a bad service
               is lipstick on a pig
5 Keys to a Great API
       Valuable
       Planned
       Flexible
       Managed
      Supported
5 Keys to a Great API
       Valuable
  Planned (designed)
       Flexible
       Managed
      Supported
Your first two design questions
  What is the goal of this API?
           (purpose)
   Who will be using this API?
          (audience)
You’ll make many design choices
What protocol(s) will I support?
                       What data format(s) to provide?
     How will I manage security?
                  Should I use an open source framework?
Which design patterns to use? Hmm, are there any?
                Oh, right, I need to do versioning too…
What’s the price of IBM?
POST	
  /GetStock	
  HTTP/1.1	
                      GET	
  h@p://example.org/stock/IBM	
  
Host:	
  www.example.org	
  
Content-­‐Type:	
  applicaRon/soap+xml	
  
	
  
<?xml	
  version="1.0"?>	
  
<soap:Envelope	
  
xmlns:soap="h@p://www.w3.org/2001/12/soap-­‐
envelope"	
  
soap:encodingStyle="h@p://www.w3.org/
2001/12/soap-­‐encoding">	
  
	
  
<soap:Body	
  xmlns:m="h@p://www.example.org/
stock">	
  
	
  	
  <m:GetStockPrice>	
  
	
  	
  	
  	
  <m:StockName>IBM</m:StockName>	
  
	
  	
  </m:GetStockPrice>	
  
</soap:Body>	
  
</soap:Envelope>	
  
SOAP                                             REST
POST	
  /GetStock	
  HTTP/1.1	
                      GET	
  h@p://example.org/stock/IBM	
  
Host:	
  www.example.org	
  
Content-­‐Type:	
  applicaRon/soap+xml	
  
	
  
<?xml	
  version="1.0"?>	
  
<soap:Envelope	
  
xmlns:soap="h@p://www.w3.org/2001/12/soap-­‐
envelope"	
  
soap:encodingStyle="h@p://www.w3.org/
2001/12/soap-­‐encoding">	
  
	
  
<soap:Body	
  xmlns:m="h@p://www.example.org/
stock">	
  
	
  	
  <m:GetStockPrice>	
  
	
  	
  	
  	
  <m:StockName>IBM</m:StockName>	
  
	
  	
  </m:GetStockPrice>	
  
</soap:Body>	
  
</soap:Envelope>	
  
API protocols and styles
Based on directory of 5,100 web APIs listed at ProgrammableWeb, February 2012
ET #3
      I SECR
A   P

  A great API doesn’t
        just ask
“am I RESTful enough? ”
Daniel Jacobson, Netflix Engineering Blog, July 9, 2012
Daniel Jacobson, Netflix Engineering Blog, July 9, 2012
another moral of that story is…



            A great API
          understands its
             audience
Your audience may <3 SOAP, really




  50+ finance APIs, 5 billion+ calls/month
Data format? It depends…
     XML, JSON, RSS, Atom, YAML,
 iCalendar, CSV, Serialized PHP, HTML,
 PNG, GeoRSS, vCard, Text, RDF, OPML,
     MediaRSS, VML, TV-Anytime,
 hCalendar, FOAF, XSPF, SQL, GML, CDF

       Data formats supported by APIs on ProgrammableWeb, May 2012
What’s the price of IBM?
{	
                                       <?xml	
  version="1.0"?>	
  
	
  	
  	
  	
  "symbol":	
  ”IBM",	
     <soap:Envelope	
  
	
  	
  	
  	
  "price":	
  94.72,	
      xmlns:soap="h@p://www.w3.org/2001/12/soap-­‐
                                          envelope"	
  
}	
  
                                          soap:encodingStyle="h@p://www.w3.org/
                                          2001/12/soap-­‐encoding">	
  
                                          	
  
                                          <soap:Body	
  xmlns:m="h@p://www.example.org/
                                          stock">	
  
                                          	
  	
  <m:GetStockPriceResponse>	
  
                                          	
  	
  	
  	
  <m:Price>34.5</m:Price>	
  
                                          	
  	
  </m:GetStockPriceResponse>	
  
                                          </soap:Body>	
  
                                          	
  
                                          </soap:Envelope>	
  
JSON                                             XML
{	
                                       <?xml	
  version="1.0"?>	
  
	
  	
  	
  	
  "symbol":	
  ”IBM",	
     <soap:Envelope	
  
	
  	
  	
  	
  "price":	
  94.72,	
      xmlns:soap="h@p://www.w3.org/2001/12/soap-­‐
                                          envelope"	
  
}	
  
                                          soap:encodingStyle="h@p://www.w3.org/
                                          2001/12/soap-­‐encoding">	
  
                                          	
  
                                          <soap:Body	
  xmlns:m="h@p://www.example.org/
                                          stock">	
  
                                          	
  	
  <m:GetStockPriceResponse>	
  
                                          	
  	
  	
  	
  <m:Price>34.5</m:Price>	
  
                                          	
  	
  </m:GetStockPriceResponse>	
  
                                          </soap:Body>	
  
                                          	
  
                                          </soap:Envelope>	
  
Percentage of REST APIs supporting JSON
      Based on directory of 5,800 web APIs listed at ProgrammableWeb, May 2012
Want to discuss API design?
       Check out API Craft
  http://groups.google.com/group/api-craft
5 Keys to a Great API
           Valuable
           Planned
   (simple) Flexible (easily adopted)

          Managed
         Supported
API simplicity continuum


Simple                               Complex



  “As simple as possible, but no simpler”
What makes an API flexible?
             Provides choices
        data format, protocol, version

         Gives developer control
   partial queries & updates, batch operations

         Offers advanced options
         webhooks, streaming, caching
What’s your TTFHW?
    Time To First “Hello World”
    aka: how long from zero to 60?
6 ways to accelerate TTFHW
#1) Make it clear what you do
#2) Offer “Free” or “Trial” API access
(or, even both free & trial)
#3) Fast, automated signup



             (so fast, you can even skip this
             step till you’re convinced…)
#4) Clear, accurate documentation
#5) Copious code samples
Stripe’s dashboard
                                     #6) Provide tools
                                              Google’s
                                              OAuth
                                              Playground
     Wordnik’s Swagger & Mashery’s I/O Docs



                                              Apigee’s API console

Twilio’s debugger
5 Keys to a Great API
       Valuable
       Planned
       Flexible
       Managed (and measured)
      Supported
What to manage & measure?
  Manage           Measure
  Security         Performance
  Key management   Developers and apps
  Monitoring       Quality
  Reporting        Marketing
  Scaling          Revenue
  Rate limiting    Volume
  Versioning       Trends
API versioning in REST
Where	
                        What	
               Who	
            Example	
  
Path	
  segment	
              Date	
               Twilio	
         /2010-­‐04-­‐01/…	
  
Path	
  segment	
              Number	
             Twi@er	
         /1/…	
  
Path	
  segment	
              ‘v’	
  +	
  Number	
   LinkedIn	
     /v1/…	
  
Query	
  string	
              Number	
             Google	
         ?v=2	
  
Custom	
  HTTP	
  header	
   Number	
               Google	
         GData-­‐Version:	
  2	
  
HTTP	
  Accept	
  header	
     Number	
             Github	
         applicaRon/vnd.github[.version]	
  
ET #4
      I SECR
A   P

It matters less how you
   version than you do
         version
API security baseline
Today:
SSL as option
OAuth 2.0 (one of the few API standards with traction)
Future:
SSL required (many major APIs moving to SSL only)
OpenID Connect (it’s very early today)
Great APIs get measured
       Great APIs get measured
Metrics that matter
 Traffic            Developers          Service
                     Total developers    Performance
  Total calls
                    Active developers     Availability
 Top methods
                      Top developers      Error rates
  Call chains
                       Trending apps     Code defects
 Quota faults
                         Retention


Marketing            Support            Business
Dev registrations                        Direct revenue
                      Support tickets   Indirect revenue
Dev portal funnel
                      Response times      Market share
 Traffic sources
                    Community metrics         Costs
 Event metrics
ET #5
      I SECR
A   P

    Great APIs prioritize
     what they want to
          measure
“The absence of
limitations is the
  enemy of art”
             Orson Welles
5 Keys to a Great API
       Valuable
       Planned
       Flexible
      Managed
      Supported
What makes an API supported?
      Great developer experience (DX)
  signup, guides, reference, SDKs, pricing, clear ToS

         Communication & community
     forum, blog, social media, email, app gallery

      Great support / evangelism teams
   active, engaged, listening, responding, at events
What makes an API supported?
    Great developer experience (DX)
              	
  
        A   nd reference, SDKs, pricing, legal
                               g	
  
   Signup, guides,
                      ythin
                er & communityr	
  
          ev
        Communication d	
  un        de
           c        ereemail, events, clear ToS
  forum, blog,ov media,
               social

                       /W
                           	
   teams
     Great supportHevangelism
                TF
             T listening, responding
       active, engaged,
developerexperience.org

                see also
developer-support-handbook.appspot.com
ET #6
      I SECR
A   P

     Great DX separates
     the best APIs from
          the rest
Covering your DX checklist
Does API design impact support?
         Let me count the ways…
 For example, look at Twilio’s error response
Community: a core tenet of great
open APIs and open source
5 Keys to a Great API
       Valuable e	
  
              e	
  m or
 A nd     on
      	
  Planned
    ing     …	
  
          Flexible
 th
      Managed
     Supported
Top 10 API worst practices
  10. Poor error handing
  9. REST APIs that ignore HTTP rules
  8. Exposing your raw underlying data model
  7. Security complexity
  6. Unexpected & undocumented releases
  5. Poor developer experience
  4. Expect an MVC framework ‘gives’ you a great API
  3. Assume if you build it they will come
  2. Inadequate support
  1. Poor documentation
#7
    P I SECR   ET     A great API
A
                     is a journey,
                   not a destination
Thank You

 QuesRons,	
  ideas,	
  comments?
john@programmableweb.com	
  
       @johnmusser	
  
                 	
  
Photo	
  credits	
  
Pig:	
  h@p://www.flickr.com/photos/babasteve/7341687640/	
  
Race	
  car:	
  h@p://www.flickr.com/photos/lim_lik_wei/3270522646/	
  
Stopwatch:	
  h@p://www.flickr.com/photos/purplemapish/3020016417/	
  
Hackers:	
  h@p://www.flickr.com/photos/hackny/5684846071/	
  
Winding	
  road:	
  h@p://www.flickr.com/photos/ma@hewthecoolguy/7518274258/	
  
	
  
	
  

More Related Content

What's hot

OpenAPI Intro (1).pdf
OpenAPI Intro (1).pdfOpenAPI Intro (1).pdf
OpenAPI Intro (1).pdfPostman
 
API Test Automation
API Test Automation API Test Automation
API Test Automation SQALab
 
API Developer Experience: Why it Matters, and How Documenting Your API with S...
API Developer Experience: Why it Matters, and How Documenting Your API with S...API Developer Experience: Why it Matters, and How Documenting Your API with S...
API Developer Experience: Why it Matters, and How Documenting Your API with S...SmartBear
 
API Testing Presentations.pptx
API Testing Presentations.pptxAPI Testing Presentations.pptx
API Testing Presentations.pptxManmitSalunke
 
What is gRPC introduction gRPC Explained
What is gRPC introduction gRPC ExplainedWhat is gRPC introduction gRPC Explained
What is gRPC introduction gRPC Explainedjeetendra mandal
 
How to Execute a Successful API Strategy
How to Execute a Successful API StrategyHow to Execute a Successful API Strategy
How to Execute a Successful API StrategyMatt McLarty
 
Driving Pipeline Automation With Newman and the Postman API
Driving Pipeline Automation With Newman and the Postman APIDriving Pipeline Automation With Newman and the Postman API
Driving Pipeline Automation With Newman and the Postman APIPostman
 
Testing Your APIs: Postman, Newman, and Beyond
Testing Your APIs: Postman, Newman, and BeyondTesting Your APIs: Postman, Newman, and Beyond
Testing Your APIs: Postman, Newman, and BeyondPostman
 
Rest api standards and best practices
Rest api standards and best practicesRest api standards and best practices
Rest api standards and best practicesAnkita Mahajan
 
API Management in Digital Transformation
API Management in Digital TransformationAPI Management in Digital Transformation
API Management in Digital TransformationAditya Thatte
 
B4USolution_API-Testing
B4USolution_API-TestingB4USolution_API-Testing
B4USolution_API-Testingb4usolution .
 
KPIs for APIs (and how API Calls are the new Web Hits, and you may be measuri...
KPIs for APIs (and how API Calls are the new Web Hits, and you may be measuri...KPIs for APIs (and how API Calls are the new Web Hits, and you may be measuri...
KPIs for APIs (and how API Calls are the new Web Hits, and you may be measuri...John Musser
 
Introduction to APIs & how to automate APIs testing with selenium web driver?
Introduction to APIs & how to automate APIs testing with selenium web driver?Introduction to APIs & how to automate APIs testing with selenium web driver?
Introduction to APIs & how to automate APIs testing with selenium web driver?BugRaptors
 

What's hot (20)

Apigee Edge Overview and Roadmap
Apigee Edge Overview and RoadmapApigee Edge Overview and Roadmap
Apigee Edge Overview and Roadmap
 
API for Beginners
API for BeginnersAPI for Beginners
API for Beginners
 
OpenAPI Intro (1).pdf
OpenAPI Intro (1).pdfOpenAPI Intro (1).pdf
OpenAPI Intro (1).pdf
 
Postman
PostmanPostman
Postman
 
API Test Automation
API Test Automation API Test Automation
API Test Automation
 
API Developer Experience: Why it Matters, and How Documenting Your API with S...
API Developer Experience: Why it Matters, and How Documenting Your API with S...API Developer Experience: Why it Matters, and How Documenting Your API with S...
API Developer Experience: Why it Matters, and How Documenting Your API with S...
 
API Testing Presentations.pptx
API Testing Presentations.pptxAPI Testing Presentations.pptx
API Testing Presentations.pptx
 
API Testing for everyone.pptx
API Testing for everyone.pptxAPI Testing for everyone.pptx
API Testing for everyone.pptx
 
What is gRPC introduction gRPC Explained
What is gRPC introduction gRPC ExplainedWhat is gRPC introduction gRPC Explained
What is gRPC introduction gRPC Explained
 
How to Execute a Successful API Strategy
How to Execute a Successful API StrategyHow to Execute a Successful API Strategy
How to Execute a Successful API Strategy
 
API Design- Best Practices
API Design-   Best PracticesAPI Design-   Best Practices
API Design- Best Practices
 
Driving Pipeline Automation With Newman and the Postman API
Driving Pipeline Automation With Newman and the Postman APIDriving Pipeline Automation With Newman and the Postman API
Driving Pipeline Automation With Newman and the Postman API
 
Testing Your APIs: Postman, Newman, and Beyond
Testing Your APIs: Postman, Newman, and BeyondTesting Your APIs: Postman, Newman, and Beyond
Testing Your APIs: Postman, Newman, and Beyond
 
Rest api standards and best practices
Rest api standards and best practicesRest api standards and best practices
Rest api standards and best practices
 
API Management in Digital Transformation
API Management in Digital TransformationAPI Management in Digital Transformation
API Management in Digital Transformation
 
Api testing
Api testingApi testing
Api testing
 
B4USolution_API-Testing
B4USolution_API-TestingB4USolution_API-Testing
B4USolution_API-Testing
 
How Secure Are Your APIs?
How Secure Are Your APIs?How Secure Are Your APIs?
How Secure Are Your APIs?
 
KPIs for APIs (and how API Calls are the new Web Hits, and you may be measuri...
KPIs for APIs (and how API Calls are the new Web Hits, and you may be measuri...KPIs for APIs (and how API Calls are the new Web Hits, and you may be measuri...
KPIs for APIs (and how API Calls are the new Web Hits, and you may be measuri...
 
Introduction to APIs & how to automate APIs testing with selenium web driver?
Introduction to APIs & how to automate APIs testing with selenium web driver?Introduction to APIs & how to automate APIs testing with selenium web driver?
Introduction to APIs & how to automate APIs testing with selenium web driver?
 

Similar to What Makes a Great Open API?

Open APIs: What's Hot, What's Not?
Open APIs: What's Hot, What's Not?Open APIs: What's Hot, What's Not?
Open APIs: What's Hot, What's Not?John Musser
 
Open APIs and the Semantic Web 2011
Open APIs and the Semantic Web 2011Open APIs and the Semantic Web 2011
Open APIs and the Semantic Web 2011John Musser
 
API Management Workshop (at Startupbootcamp Berlin)
API Management Workshop (at Startupbootcamp Berlin)API Management Workshop (at Startupbootcamp Berlin)
API Management Workshop (at Startupbootcamp Berlin)3scale
 
Open API Ecosystem Overview: December 2010
Open API Ecosystem Overview: December 2010Open API Ecosystem Overview: December 2010
Open API Ecosystem Overview: December 2010John Musser
 
APIdays Paris 2019 Backend is the new frontend by Antoine Cheron
APIdays Paris 2019 Backend is the new frontend by Antoine CheronAPIdays Paris 2019 Backend is the new frontend by Antoine Cheron
APIdays Paris 2019 Backend is the new frontend by Antoine Cheronapidays
 
LAJUG Napster REST API
LAJUG Napster REST APILAJUG Napster REST API
LAJUG Napster REST APIstephenbhadran
 
API Product Opportunity Responsibility Nicolas Sierro 2015.pptx
API Product Opportunity Responsibility Nicolas Sierro 2015.pptxAPI Product Opportunity Responsibility Nicolas Sierro 2015.pptx
API Product Opportunity Responsibility Nicolas Sierro 2015.pptxBlockchainizator
 
Open APIs: What's Hot, What's Not?
Open APIs: What's Hot, What's Not?Open APIs: What's Hot, What's Not?
Open APIs: What's Hot, What's Not?John Musser
 
Building a Great Web API - Evan Cooke - QCON 2011
Building a Great Web API - Evan Cooke - QCON 2011Building a Great Web API - Evan Cooke - QCON 2011
Building a Great Web API - Evan Cooke - QCON 2011Twilio Inc
 
Building A Great API - Evan Cooke, Cloudstock, December 2010
Building A Great API - Evan Cooke, Cloudstock, December 2010Building A Great API - Evan Cooke, Cloudstock, December 2010
Building A Great API - Evan Cooke, Cloudstock, December 2010Twilio Inc
 
Open Ap Is State Of The Market
Open Ap Is State Of The MarketOpen Ap Is State Of The Market
Open Ap Is State Of The MarketConSanFrancisco123
 
Frequently asked MuleSoft Interview Questions and Answers from Techlightning
Frequently asked MuleSoft Interview Questions and Answers from TechlightningFrequently asked MuleSoft Interview Questions and Answers from Techlightning
Frequently asked MuleSoft Interview Questions and Answers from TechlightningArul ChristhuRaj Alphonse
 
Creating Interactive Olap Applications With My Sql Enterprise And Mondrian Pr...
Creating Interactive Olap Applications With My Sql Enterprise And Mondrian Pr...Creating Interactive Olap Applications With My Sql Enterprise And Mondrian Pr...
Creating Interactive Olap Applications With My Sql Enterprise And Mondrian Pr...Indus Khaitan
 
RESTful API-centric Universe
RESTful API-centric UniverseRESTful API-centric Universe
RESTful API-centric UniverseTihomir Opačić
 
Generating Insights from WSO2 API Manager Statistics
Generating Insights from WSO2 API Manager StatisticsGenerating Insights from WSO2 API Manager Statistics
Generating Insights from WSO2 API Manager StatisticsWSO2
 
Lambda@Edge를통한멀티리전기반글로벌트래픽길들이기::이상현::AWS Summit Seoul 2018
Lambda@Edge를통한멀티리전기반글로벌트래픽길들이기::이상현::AWS Summit Seoul 2018Lambda@Edge를통한멀티리전기반글로벌트래픽길들이기::이상현::AWS Summit Seoul 2018
Lambda@Edge를통한멀티리전기반글로벌트래픽길들이기::이상현::AWS Summit Seoul 2018Amazon Web Services Korea
 
Building Awesome APIs in Grails
Building Awesome APIs in GrailsBuilding Awesome APIs in Grails
Building Awesome APIs in Grailsclatimer
 
OpenAPI v.Next - Events, Alternative Schemas & the Road Ahead
OpenAPI v.Next - Events, Alternative Schemas & the Road AheadOpenAPI v.Next - Events, Alternative Schemas & the Road Ahead
OpenAPI v.Next - Events, Alternative Schemas & the Road AheadTed Epstein
 

Similar to What Makes a Great Open API? (20)

What Makes a Great Open API?
What Makes a Great Open API?What Makes a Great Open API?
What Makes a Great Open API?
 
Open APIs: What's Hot, What's Not?
Open APIs: What's Hot, What's Not?Open APIs: What's Hot, What's Not?
Open APIs: What's Hot, What's Not?
 
Open APIs and the Semantic Web 2011
Open APIs and the Semantic Web 2011Open APIs and the Semantic Web 2011
Open APIs and the Semantic Web 2011
 
API Management Workshop (at Startupbootcamp Berlin)
API Management Workshop (at Startupbootcamp Berlin)API Management Workshop (at Startupbootcamp Berlin)
API Management Workshop (at Startupbootcamp Berlin)
 
Open API Ecosystem Overview: December 2010
Open API Ecosystem Overview: December 2010Open API Ecosystem Overview: December 2010
Open API Ecosystem Overview: December 2010
 
APIdays Paris 2019 Backend is the new frontend by Antoine Cheron
APIdays Paris 2019 Backend is the new frontend by Antoine CheronAPIdays Paris 2019 Backend is the new frontend by Antoine Cheron
APIdays Paris 2019 Backend is the new frontend by Antoine Cheron
 
LAJUG Napster REST API
LAJUG Napster REST APILAJUG Napster REST API
LAJUG Napster REST API
 
API Product Opportunity Responsibility Nicolas Sierro 2015.pptx
API Product Opportunity Responsibility Nicolas Sierro 2015.pptxAPI Product Opportunity Responsibility Nicolas Sierro 2015.pptx
API Product Opportunity Responsibility Nicolas Sierro 2015.pptx
 
Open APIs: What's Hot, What's Not?
Open APIs: What's Hot, What's Not?Open APIs: What's Hot, What's Not?
Open APIs: What's Hot, What's Not?
 
Building a Great Web API - Evan Cooke - QCON 2011
Building a Great Web API - Evan Cooke - QCON 2011Building a Great Web API - Evan Cooke - QCON 2011
Building a Great Web API - Evan Cooke - QCON 2011
 
Building A Great API - Evan Cooke, Cloudstock, December 2010
Building A Great API - Evan Cooke, Cloudstock, December 2010Building A Great API - Evan Cooke, Cloudstock, December 2010
Building A Great API - Evan Cooke, Cloudstock, December 2010
 
Open Ap Is State Of The Market
Open Ap Is State Of The MarketOpen Ap Is State Of The Market
Open Ap Is State Of The Market
 
Frequently asked MuleSoft Interview Questions and Answers from Techlightning
Frequently asked MuleSoft Interview Questions and Answers from TechlightningFrequently asked MuleSoft Interview Questions and Answers from Techlightning
Frequently asked MuleSoft Interview Questions and Answers from Techlightning
 
Creating Interactive Olap Applications With My Sql Enterprise And Mondrian Pr...
Creating Interactive Olap Applications With My Sql Enterprise And Mondrian Pr...Creating Interactive Olap Applications With My Sql Enterprise And Mondrian Pr...
Creating Interactive Olap Applications With My Sql Enterprise And Mondrian Pr...
 
RESTful API-centric Universe
RESTful API-centric UniverseRESTful API-centric Universe
RESTful API-centric Universe
 
Generating Insights from WSO2 API Manager Statistics
Generating Insights from WSO2 API Manager StatisticsGenerating Insights from WSO2 API Manager Statistics
Generating Insights from WSO2 API Manager Statistics
 
Lambda@Edge를통한멀티리전기반글로벌트래픽길들이기::이상현::AWS Summit Seoul 2018
Lambda@Edge를통한멀티리전기반글로벌트래픽길들이기::이상현::AWS Summit Seoul 2018Lambda@Edge를통한멀티리전기반글로벌트래픽길들이기::이상현::AWS Summit Seoul 2018
Lambda@Edge를통한멀티리전기반글로벌트래픽길들이기::이상현::AWS Summit Seoul 2018
 
Building Awesome APIs in Grails
Building Awesome APIs in GrailsBuilding Awesome APIs in Grails
Building Awesome APIs in Grails
 
Api manager preconference
Api manager preconferenceApi manager preconference
Api manager preconference
 
OpenAPI v.Next - Events, Alternative Schemas & the Road Ahead
OpenAPI v.Next - Events, Alternative Schemas & the Road AheadOpenAPI v.Next - Events, Alternative Schemas & the Road Ahead
OpenAPI v.Next - Events, Alternative Schemas & the Road Ahead
 

Recently uploaded

So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
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
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
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
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
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
 
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
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
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
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
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
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
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.
 
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
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 

What Makes a Great Open API?

  • 1. What Makes a Great Open API? John  Musser,  ProgrammableWeb   @johnmusser   OSCON  2012    
  • 2. yea rs   7   Is   ,000  AP tor ies   6  new s  s 3 ,000
  • 3. Why does having a great API matter?
  • 4. API growth rate Based on directory of 6,000 web APIs listed at ProgrammableWeb, May 2012
  • 5. 3  Months   4  Months   6  Months   9  Months   18  Months   8  Years   API growth rate Based on directory of 6,000 web APIs listed at ProgrammableWeb, May 2012
  • 6. API Billionaires Club 13 billion API calls / day (May 2011) 5 billion API calls / day (April 2010) 5 billion API calls / day (October 2009) 1.4 billion API calls / day (May 2012) 1.1 billion API calls / day (April 2011) 1 billion API calls / day (May 2012) 1 billion API calls / day (Q1 2012) 1 billion API calls / day (January 2012)
  • 7. Apps & devices everywhere
  • 8. 5 Keys to a Great API Valuable Planned Flexible Managed Supported
  • 9. 5 Keys to a Great API A valuable service (data, function, audience, ) … A plan and a business model Simple, flexible, easily adopted Managed and measured Great developer support
  • 10. Each “key” has two sides: business & technology (each supports the other)
  • 11. Each “key” has two sides: business & technology (today’s talk)
  • 12. ET #1 I SECR A P These are really, really hard to do right
  • 13. 5 Keys to a Great API Valuable Planned Flexible Managed Supported
  • 20. ET #2 I SECR A P A very valuable service hides many API sins
  • 21. the API Value Corollary The API value corollary A great API on a bad service is lipstick on a pig
  • 22. 5 Keys to a Great API Valuable Planned Flexible Managed Supported
  • 23. 5 Keys to a Great API Valuable Planned (designed) Flexible Managed Supported
  • 24. Your first two design questions What is the goal of this API? (purpose) Who will be using this API? (audience)
  • 25. You’ll make many design choices What protocol(s) will I support? What data format(s) to provide? How will I manage security? Should I use an open source framework? Which design patterns to use? Hmm, are there any? Oh, right, I need to do versioning too…
  • 26. What’s the price of IBM? POST  /GetStock  HTTP/1.1   GET  h@p://example.org/stock/IBM   Host:  www.example.org   Content-­‐Type:  applicaRon/soap+xml     <?xml  version="1.0"?>   <soap:Envelope   xmlns:soap="h@p://www.w3.org/2001/12/soap-­‐ envelope"   soap:encodingStyle="h@p://www.w3.org/ 2001/12/soap-­‐encoding">     <soap:Body  xmlns:m="h@p://www.example.org/ stock">      <m:GetStockPrice>          <m:StockName>IBM</m:StockName>      </m:GetStockPrice>   </soap:Body>   </soap:Envelope>  
  • 27. SOAP REST POST  /GetStock  HTTP/1.1   GET  h@p://example.org/stock/IBM   Host:  www.example.org   Content-­‐Type:  applicaRon/soap+xml     <?xml  version="1.0"?>   <soap:Envelope   xmlns:soap="h@p://www.w3.org/2001/12/soap-­‐ envelope"   soap:encodingStyle="h@p://www.w3.org/ 2001/12/soap-­‐encoding">     <soap:Body  xmlns:m="h@p://www.example.org/ stock">      <m:GetStockPrice>          <m:StockName>IBM</m:StockName>      </m:GetStockPrice>   </soap:Body>   </soap:Envelope>  
  • 28. API protocols and styles Based on directory of 5,100 web APIs listed at ProgrammableWeb, February 2012
  • 29. ET #3 I SECR A P A great API doesn’t just ask “am I RESTful enough? ”
  • 30. Daniel Jacobson, Netflix Engineering Blog, July 9, 2012
  • 31. Daniel Jacobson, Netflix Engineering Blog, July 9, 2012
  • 32. another moral of that story is… A great API understands its audience
  • 33. Your audience may <3 SOAP, really 50+ finance APIs, 5 billion+ calls/month
  • 34. Data format? It depends… XML, JSON, RSS, Atom, YAML, iCalendar, CSV, Serialized PHP, HTML, PNG, GeoRSS, vCard, Text, RDF, OPML, MediaRSS, VML, TV-Anytime, hCalendar, FOAF, XSPF, SQL, GML, CDF Data formats supported by APIs on ProgrammableWeb, May 2012
  • 35. What’s the price of IBM? {   <?xml  version="1.0"?>          "symbol":  ”IBM",   <soap:Envelope          "price":  94.72,   xmlns:soap="h@p://www.w3.org/2001/12/soap-­‐ envelope"   }   soap:encodingStyle="h@p://www.w3.org/ 2001/12/soap-­‐encoding">     <soap:Body  xmlns:m="h@p://www.example.org/ stock">      <m:GetStockPriceResponse>          <m:Price>34.5</m:Price>      </m:GetStockPriceResponse>   </soap:Body>     </soap:Envelope>  
  • 36. JSON XML {   <?xml  version="1.0"?>          "symbol":  ”IBM",   <soap:Envelope          "price":  94.72,   xmlns:soap="h@p://www.w3.org/2001/12/soap-­‐ envelope"   }   soap:encodingStyle="h@p://www.w3.org/ 2001/12/soap-­‐encoding">     <soap:Body  xmlns:m="h@p://www.example.org/ stock">      <m:GetStockPriceResponse>          <m:Price>34.5</m:Price>      </m:GetStockPriceResponse>   </soap:Body>     </soap:Envelope>  
  • 37. Percentage of REST APIs supporting JSON Based on directory of 5,800 web APIs listed at ProgrammableWeb, May 2012
  • 38. Want to discuss API design? Check out API Craft http://groups.google.com/group/api-craft
  • 39. 5 Keys to a Great API Valuable Planned (simple) Flexible (easily adopted) Managed Supported
  • 40. API simplicity continuum Simple Complex “As simple as possible, but no simpler”
  • 41. What makes an API flexible? Provides choices data format, protocol, version Gives developer control partial queries & updates, batch operations Offers advanced options webhooks, streaming, caching
  • 42. What’s your TTFHW? Time To First “Hello World” aka: how long from zero to 60?
  • 43. 6 ways to accelerate TTFHW
  • 44. #1) Make it clear what you do
  • 45. #2) Offer “Free” or “Trial” API access
  • 46. (or, even both free & trial)
  • 47. #3) Fast, automated signup (so fast, you can even skip this step till you’re convinced…)
  • 48. #4) Clear, accurate documentation
  • 49. #5) Copious code samples
  • 50. Stripe’s dashboard #6) Provide tools Google’s OAuth Playground Wordnik’s Swagger & Mashery’s I/O Docs Apigee’s API console Twilio’s debugger
  • 51. 5 Keys to a Great API Valuable Planned Flexible Managed (and measured) Supported
  • 52. What to manage & measure? Manage Measure Security Performance Key management Developers and apps Monitoring Quality Reporting Marketing Scaling Revenue Rate limiting Volume Versioning Trends
  • 53. API versioning in REST Where   What   Who   Example   Path  segment   Date   Twilio   /2010-­‐04-­‐01/…   Path  segment   Number   Twi@er   /1/…   Path  segment   ‘v’  +  Number   LinkedIn   /v1/…   Query  string   Number   Google   ?v=2   Custom  HTTP  header   Number   Google   GData-­‐Version:  2   HTTP  Accept  header   Number   Github   applicaRon/vnd.github[.version]  
  • 54. ET #4 I SECR A P It matters less how you version than you do version
  • 55. API security baseline Today: SSL as option OAuth 2.0 (one of the few API standards with traction) Future: SSL required (many major APIs moving to SSL only) OpenID Connect (it’s very early today)
  • 56. Great APIs get measured Great APIs get measured
  • 57. Metrics that matter Traffic Developers Service Total developers Performance Total calls Active developers Availability Top methods Top developers Error rates Call chains Trending apps Code defects Quota faults Retention Marketing Support Business Dev registrations Direct revenue Support tickets Indirect revenue Dev portal funnel Response times Market share Traffic sources Community metrics Costs Event metrics
  • 58. ET #5 I SECR A P Great APIs prioritize what they want to measure
  • 59. “The absence of limitations is the enemy of art” Orson Welles
  • 60. 5 Keys to a Great API Valuable Planned Flexible Managed Supported
  • 61. What makes an API supported? Great developer experience (DX) signup, guides, reference, SDKs, pricing, clear ToS Communication & community forum, blog, social media, email, app gallery Great support / evangelism teams active, engaged, listening, responding, at events
  • 62. What makes an API supported? Great developer experience (DX)   A nd reference, SDKs, pricing, legal g   Signup, guides, ythin er & communityr   ev Communication d  un de c ereemail, events, clear ToS forum, blog,ov media, social /W   teams Great supportHevangelism TF T listening, responding active, engaged,
  • 63. developerexperience.org see also developer-support-handbook.appspot.com
  • 64. ET #6 I SECR A P Great DX separates the best APIs from the rest
  • 65. Covering your DX checklist
  • 66. Does API design impact support? Let me count the ways… For example, look at Twilio’s error response
  • 67. Community: a core tenet of great open APIs and open source
  • 68. 5 Keys to a Great API Valuable e   e  m or A nd on  Planned ing …   Flexible th Managed Supported
  • 69. Top 10 API worst practices 10. Poor error handing 9. REST APIs that ignore HTTP rules 8. Exposing your raw underlying data model 7. Security complexity 6. Unexpected & undocumented releases 5. Poor developer experience 4. Expect an MVC framework ‘gives’ you a great API 3. Assume if you build it they will come 2. Inadequate support 1. Poor documentation
  • 70. #7 P I SECR ET A great API A is a journey, not a destination
  • 71. Thank You QuesRons,  ideas,  comments? john@programmableweb.com   @johnmusser    
  • 72. Photo  credits   Pig:  h@p://www.flickr.com/photos/babasteve/7341687640/   Race  car:  h@p://www.flickr.com/photos/lim_lik_wei/3270522646/   Stopwatch:  h@p://www.flickr.com/photos/purplemapish/3020016417/   Hackers:  h@p://www.flickr.com/photos/hackny/5684846071/   Winding  road:  h@p://www.flickr.com/photos/ma@hewthecoolguy/7518274258/