SlideShare une entreprise Scribd logo
1  sur  43
Télécharger pour lire hors ligne
twilio
       CLOUD COMMUNICATIONS




BUILDING A GREAT API
        DECEMBER 6, 2010, CLOUDSTOCK
                          EVAN COOKE
Why make Great APIs?
  Hear about API

                    Good APIs
                     Promote
                    Adoption


    Use in production
      (tell friends)
Today’s discussion focuses
on APIs exposed by Internet
services, however, the ideas
we discuss can be applied in
      many contexts
Where Do APIs Come From?

• APIs that have grown from products
                     End Users



                Facebook
                      API
               API


                            API
Where Do APIs Come From?

• APIs that are the product
               End Users


               Developers


                Cloud API
Twilio
     Web service APIs to automate Voice and SMS
                  communications

                                       Phone
   Voice               SMS
                                      Numbers
 Inbound Calls    To/From Phone         APIs to
Outbound Calls       Numbers          Dynamically
     IVR           Short Codes      Provision Phone
                                       Numbers
Outline
1. Case Studies

2. Design

3. Presentation

4. Development
Case Studies
What NOT to Do
•   Media processing API Vendor
•   Telecom API
Media processing API

•   HTTP API to analyze large
    media files
•   Tx Rate 100,000/day
    (costly)                           Media

•   POST data to the API        You   Analysis   API

•   API synchronously returns
    analysis of media (could
    be minutes/hours later)
Media processing API

•   Control and data in the
    same request (100 MB
    every request)
•   Unclear error conditions.
    Can you resend request?      You         API
•   Synchronously wait for             ???
    response
•   No request history/billing
    information
Media processing API

1   Original Request
    POST http://api.vendor.com/API/Process?
    key=2hkh&mode=bob&filter=yeah
    Body is 100MB of binary data
Media processing API

2   Add a token allowing us to safely retry
    POST http://api.vendor.com/API/Process?
    key=2hkh&mode=bob&filter=yeah&token=TK123
    Body is 100MB of binary data
Media processing API

3   Add webhook url to asynchronously respond
    POST http://api.vendor.com/API/Process?
    key=2hkh&mode=bob&filter=yeah&token=TK123&c
    bUrl=http%3A%2F%2Fmyserver.com%2Fresponse
    Body is 100MB of binary data
Media processing API

4   Async fetch media & move POST params to body
    POST http://api.vendor.com/API/Process
    Body
       key=2hkh
       mode=bob
       filter=yeah
       token=TK123
       cbUrl=http://myserver.com/response
       mediaUrl=http://s3.com/media.mov
Media processing API

5   Version API and make URL more RESTful
    POST http://api.vendor.com/v1/Media
    Body
       key=2hkh
       mode=bob
       filter=yeah
       token=TK123
       cbUrl=http://myserver.com/response
       mediaUrl=http://s3.com/media.mov
    Response
       URI http://api.vendor.com/v1/Media/MD123
What NOT to Do
•   Media processing API Vendor
•   Telecom API
Telecom API

•   API to manage phone numbers
•   Documentation is 300 page PDF,
    pages of WSDL
•   95% useless RPC functions that
    expose internal business logic
•   No simple way to get started
•   No helper libraries
Design
Key Ideas
•   Idempotency
•   Self-documenting
•   RESTfulness
•   Versioning
•   Statefulness
•   Predictability
•   Sync vs. Async
Idempotency
• Idempotence is the property of certain
  operations that they can be applied multiple
  times without changing the result.
• Request failures happen. Provide users a
  safe way to retry requests
• Example:
POST /BankAccount/AddFunds
{‘value’: 1000, ‘token’: ‘TX123’}
Self-documenting
• Sweat what and how you name. Naming is
  is the best documentation.
• Example:
GET /Users/ID123
GET /Users/ID123/Friends
GET /Users/ID123/Photos
RESTfulness
• Adherence to REST object model and
  verbs provides a clean way to expose
  business logic
• Create POST          /Users

• Fetch GET            /Users/ID123
• Modify PUT/POST      /Users/ID123
• Remove DELETE        /Users/ID123
Versioning
• Do it. Remember you will be stuck
  supporting old API versions (indefinitely?)
• Examples
  GET /api/v1/blag
  GET /api/20101206/blag
Statefulness
• When possible, offload the work of keeping
  state/history because it’s hard!
• Examples
POST /Calls
GET /Calls/CA123
GET /Calls/CA123/Recordings/RE123
Predictability
• The API should do what users expect
• Examples
  <Play>music.mp3</Play>
  <Play>music.aiff</Play>
Sync vs Async
• When a response is available immediately,
  use a synchronous response. Otherwise,
  consider an asynchronous Webhook rather
  then polling
• Examples:
POST /Object/Transforms
Body
  cbUrl=http://b.com/response
Presentation
Great APIs
•   Redis - Key/Value, List, and Set Persistence
•   Dropbox - REST, iOS/Android File Mgnt
•   Wufoo - Web forms

                     Other Notable APIs
     SimpleGeo, Github, Posterous, Tumblr,
     Facebook... great, but getting to their docs requires
     authenticating!
Redis
•   Simple, well
    named API calls
•   Powerful
•   APIs that cover
    major operational
    tasks
Dropbox
•   API support
    across platforms/
    languages
•   Community
    integration
Wufoo
• Simple well-
  documented
  REST API
• Good use of
  HTTP verbs
  and errors
What makes a Good API?
 • Easy to Learn
 • Easy to use (even without documentation)
 • Hard to Misuse
 • Easy to read and maintain code that uses it
 • Sufficiently powerful to satisfy requirements
 • Easy to extend
 • Appropriate to audience
                     How to Design a Good API and Why it Matters
                     Joshua Block, Google
Easy to Learn
Easy to Use
Easy to read/maintain code


            HTTP/XML/JSON
               REST         Customer


  Telecom                   Business
    Goo                      Logic
Sufficiently
            Powerful
It sure helps to write code live if you are pitching to
developers. John got a big nod from the audience for doing
that.

But the important point is that when you show your product
live in front of people, they can get what you are doing way
faster than working through a bunch of slides. Kudos to John
for an excellent pitch. Apparently Business Insider called it
"the best demo we've ever seen.
Easy to extend



            Expose Twilio
         in an async evented
                model
Development
Twilio Process
1. Customers Feedback
2. Documentation
3. Team feedback (back to 2)
4. Prototype (2-3 weeks)
5. Alpha customers
6. Preview Customers
7. General Release
Design
  Idempotent, self-documenting, RESTful,
  versioned, stateful, predictable, sync/async

Presentation
  Easy to learn, easy to use, easy to read and
  maintainable, sufficiently powerful, easy to extend

Development
  Customers, documentation, team, prototype,
  alpha customers, preview customers, release
Be Simple
twilio
http://www.twilio.com
      @emcooke

Contenu connexe

Tendances

Personal branding - do it yourself
Personal branding - do it yourselfPersonal branding - do it yourself
Personal branding - do it yourselfShivam Dhawan
 
Mastering Social Media Workshop 3 Exercises
Mastering Social Media Workshop 3 ExercisesMastering Social Media Workshop 3 Exercises
Mastering Social Media Workshop 3 ExercisesHamill Associates Ltd
 
Social Restart 2022: Štěpán Trnka - Nedělejte social blbě
Social Restart 2022: Štěpán Trnka - Nedělejte social blběSocial Restart 2022: Štěpán Trnka - Nedělejte social blbě
Social Restart 2022: Štěpán Trnka - Nedělejte social blběTaste
 
LinkedIn Personal Branding
LinkedIn Personal BrandingLinkedIn Personal Branding
LinkedIn Personal BrandingLinkedIn Italia
 
Culture Code: Creating a Company You Love
Culture Code: Creating a Company You LoveCulture Code: Creating a Company You Love
Culture Code: Creating a Company You LoveDharmesh Shah
 
Marketing Tools 2016 T&C2016 Roland Frasier Marketing Tools Presentation
Marketing Tools 2016 T&C2016 Roland Frasier Marketing Tools PresentationMarketing Tools 2016 T&C2016 Roland Frasier Marketing Tools Presentation
Marketing Tools 2016 T&C2016 Roland Frasier Marketing Tools PresentationRoland Frasier
 
Wait, How Do I Write This Email_ ( PDFDrive ).pdf
Wait, How Do I Write This Email_ ( PDFDrive ).pdfWait, How Do I Write This Email_ ( PDFDrive ).pdf
Wait, How Do I Write This Email_ ( PDFDrive ).pdfAnuradha tripathi
 
Content Strategy: The Importance of Content Strategy in Marketing
Content Strategy: The Importance of Content Strategy in MarketingContent Strategy: The Importance of Content Strategy in Marketing
Content Strategy: The Importance of Content Strategy in MarketingZest Digital
 
Personal Branding: How to Build Your Personal Brand
Personal Branding: How to Build Your Personal BrandPersonal Branding: How to Build Your Personal Brand
Personal Branding: How to Build Your Personal BrandPam Moore
 
Building A Social Media Strategy For B2B Brands
Building A Social Media Strategy For B2B BrandsBuilding A Social Media Strategy For B2B Brands
Building A Social Media Strategy For B2B Brandscuratebee
 
How to Respond to Negative Reviews on Glassdoor
How to Respond to Negative Reviews on GlassdoorHow to Respond to Negative Reviews on Glassdoor
How to Respond to Negative Reviews on GlassdoorGlassdoor
 
[2016 데이터 그랜드 컨퍼런스] 2 5(빅데이터). 유비원 비정형데이터 중심의 big data 활용방안
[2016 데이터 그랜드 컨퍼런스] 2 5(빅데이터). 유비원 비정형데이터 중심의 big data 활용방안[2016 데이터 그랜드 컨퍼런스] 2 5(빅데이터). 유비원 비정형데이터 중심의 big data 활용방안
[2016 데이터 그랜드 컨퍼런스] 2 5(빅데이터). 유비원 비정형데이터 중심의 big data 활용방안K data
 
[우리가 데이터를 쓰는 법] 모바일 게임 로그 데이터 분석 이야기 - 엔터메이트 공신배 팀장
[우리가 데이터를 쓰는 법] 모바일 게임 로그 데이터 분석 이야기 - 엔터메이트 공신배 팀장[우리가 데이터를 쓰는 법] 모바일 게임 로그 데이터 분석 이야기 - 엔터메이트 공신배 팀장
[우리가 데이터를 쓰는 법] 모바일 게임 로그 데이터 분석 이야기 - 엔터메이트 공신배 팀장Dylan Ko
 
Evolution of a bni super member - Anishkaa Gehani
Evolution of a bni super member - Anishkaa Gehani Evolution of a bni super member - Anishkaa Gehani
Evolution of a bni super member - Anishkaa Gehani Anishkaa Gehani
 
Growth Hacking, Funding + Scale Your Business With Leverage
Growth Hacking, Funding + Scale Your Business With LeverageGrowth Hacking, Funding + Scale Your Business With Leverage
Growth Hacking, Funding + Scale Your Business With LeverageRoland Frasier
 
Employer Branding - Social Recruiting Strategies Conference Presentation
Employer Branding - Social Recruiting Strategies Conference PresentationEmployer Branding - Social Recruiting Strategies Conference Presentation
Employer Branding - Social Recruiting Strategies Conference PresentationPaul Andre de Vera
 
파인트리컴퍼니 회사소개서
파인트리컴퍼니 회사소개서파인트리컴퍼니 회사소개서
파인트리컴퍼니 회사소개서두희 이
 

Tendances (20)

Personal branding - do it yourself
Personal branding - do it yourselfPersonal branding - do it yourself
Personal branding - do it yourself
 
Mastering Social Media Workshop 3 Exercises
Mastering Social Media Workshop 3 ExercisesMastering Social Media Workshop 3 Exercises
Mastering Social Media Workshop 3 Exercises
 
Social Restart 2022: Štěpán Trnka - Nedělejte social blbě
Social Restart 2022: Štěpán Trnka - Nedělejte social blběSocial Restart 2022: Štěpán Trnka - Nedělejte social blbě
Social Restart 2022: Štěpán Trnka - Nedělejte social blbě
 
LinkedIn Personal Branding
LinkedIn Personal BrandingLinkedIn Personal Branding
LinkedIn Personal Branding
 
Culture Code: Creating a Company You Love
Culture Code: Creating a Company You LoveCulture Code: Creating a Company You Love
Culture Code: Creating a Company You Love
 
Marketing Tools 2016 T&C2016 Roland Frasier Marketing Tools Presentation
Marketing Tools 2016 T&C2016 Roland Frasier Marketing Tools PresentationMarketing Tools 2016 T&C2016 Roland Frasier Marketing Tools Presentation
Marketing Tools 2016 T&C2016 Roland Frasier Marketing Tools Presentation
 
Wait, How Do I Write This Email_ ( PDFDrive ).pdf
Wait, How Do I Write This Email_ ( PDFDrive ).pdfWait, How Do I Write This Email_ ( PDFDrive ).pdf
Wait, How Do I Write This Email_ ( PDFDrive ).pdf
 
Facebook marketing
Facebook marketingFacebook marketing
Facebook marketing
 
Content Strategy: The Importance of Content Strategy in Marketing
Content Strategy: The Importance of Content Strategy in MarketingContent Strategy: The Importance of Content Strategy in Marketing
Content Strategy: The Importance of Content Strategy in Marketing
 
Social Media Strategy
Social Media StrategySocial Media Strategy
Social Media Strategy
 
Personal Branding: How to Build Your Personal Brand
Personal Branding: How to Build Your Personal BrandPersonal Branding: How to Build Your Personal Brand
Personal Branding: How to Build Your Personal Brand
 
Building A Social Media Strategy For B2B Brands
Building A Social Media Strategy For B2B BrandsBuilding A Social Media Strategy For B2B Brands
Building A Social Media Strategy For B2B Brands
 
Personal Branding
Personal BrandingPersonal Branding
Personal Branding
 
How to Respond to Negative Reviews on Glassdoor
How to Respond to Negative Reviews on GlassdoorHow to Respond to Negative Reviews on Glassdoor
How to Respond to Negative Reviews on Glassdoor
 
[2016 데이터 그랜드 컨퍼런스] 2 5(빅데이터). 유비원 비정형데이터 중심의 big data 활용방안
[2016 데이터 그랜드 컨퍼런스] 2 5(빅데이터). 유비원 비정형데이터 중심의 big data 활용방안[2016 데이터 그랜드 컨퍼런스] 2 5(빅데이터). 유비원 비정형데이터 중심의 big data 활용방안
[2016 데이터 그랜드 컨퍼런스] 2 5(빅데이터). 유비원 비정형데이터 중심의 big data 활용방안
 
[우리가 데이터를 쓰는 법] 모바일 게임 로그 데이터 분석 이야기 - 엔터메이트 공신배 팀장
[우리가 데이터를 쓰는 법] 모바일 게임 로그 데이터 분석 이야기 - 엔터메이트 공신배 팀장[우리가 데이터를 쓰는 법] 모바일 게임 로그 데이터 분석 이야기 - 엔터메이트 공신배 팀장
[우리가 데이터를 쓰는 법] 모바일 게임 로그 데이터 분석 이야기 - 엔터메이트 공신배 팀장
 
Evolution of a bni super member - Anishkaa Gehani
Evolution of a bni super member - Anishkaa Gehani Evolution of a bni super member - Anishkaa Gehani
Evolution of a bni super member - Anishkaa Gehani
 
Growth Hacking, Funding + Scale Your Business With Leverage
Growth Hacking, Funding + Scale Your Business With LeverageGrowth Hacking, Funding + Scale Your Business With Leverage
Growth Hacking, Funding + Scale Your Business With Leverage
 
Employer Branding - Social Recruiting Strategies Conference Presentation
Employer Branding - Social Recruiting Strategies Conference PresentationEmployer Branding - Social Recruiting Strategies Conference Presentation
Employer Branding - Social Recruiting Strategies Conference Presentation
 
파인트리컴퍼니 회사소개서
파인트리컴퍼니 회사소개서파인트리컴퍼니 회사소개서
파인트리컴퍼니 회사소개서
 

En vedette

Programming Language Selection
Programming Language SelectionProgramming Language Selection
Programming Language SelectionDhananjay Nene
 
Twilio Presents at PariSoMa
Twilio Presents at PariSoMaTwilio Presents at PariSoMa
Twilio Presents at PariSoMaTwilio Inc
 
Twilio at the Google App Engine Meetup 2009-10
Twilio at the Google App Engine Meetup 2009-10Twilio at the Google App Engine Meetup 2009-10
Twilio at the Google App Engine Meetup 2009-10Twilio Inc
 
Twilio - Monetizing SaaS - Jeff Lawson Cloudstock December 2010
Twilio - Monetizing SaaS - Jeff Lawson Cloudstock December 2010Twilio - Monetizing SaaS - Jeff Lawson Cloudstock December 2010
Twilio - Monetizing SaaS - Jeff Lawson Cloudstock December 2010Twilio Inc
 
Twilio SMS - API for Sending & Receiving SMS Messages
Twilio SMS - API for Sending & Receiving SMS MessagesTwilio SMS - API for Sending & Receiving SMS Messages
Twilio SMS - API for Sending & Receiving SMS MessagesTwilio Inc
 
"Reinventing the Dialplan" slides from Twilio's Astricon 2009 talk
"Reinventing the Dialplan" slides from Twilio's Astricon 2009 talk"Reinventing the Dialplan" slides from Twilio's Astricon 2009 talk
"Reinventing the Dialplan" slides from Twilio's Astricon 2009 talkTwilio Inc
 
DevSecOps - The big picture
DevSecOps - The big pictureDevSecOps - The big picture
DevSecOps - The big pictureDevSecOpsSg
 
2012: Putting your robots to work: security automation at Twitter
2012: Putting your robots to work: security automation at Twitter2012: Putting your robots to work: security automation at Twitter
2012: Putting your robots to work: security automation at TwitterNeil Matatall
 
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
 
John sheehan of twillio gives cloud camp denver lightning talk
John sheehan of twillio gives cloud camp denver lightning talkJohn sheehan of twillio gives cloud camp denver lightning talk
John sheehan of twillio gives cloud camp denver lightning talkIntel Corporation
 
Twilio Contact Center Overview
Twilio Contact Center OverviewTwilio Contact Center Overview
Twilio Contact Center OverviewTwilio Inc
 
How To Track Calls Using Twilio?
How To Track Calls Using Twilio?How To Track Calls Using Twilio?
How To Track Calls Using Twilio?Twilio Inc
 
Twilio Web Service API for building Voice Applications
Twilio Web Service API for building Voice ApplicationsTwilio Web Service API for building Voice Applications
Twilio Web Service API for building Voice ApplicationsTwilio Inc
 
What Can You Do With Twilio
What Can You Do With TwilioWhat Can You Do With Twilio
What Can You Do With TwilioTwilio Inc
 
DevSecOps in Baby Steps
DevSecOps in Baby StepsDevSecOps in Baby Steps
DevSecOps in Baby StepsPriyanka Aash
 
Application Security at DevOps Speed - DevOpsDays Singapore 2016
Application Security at DevOps Speed - DevOpsDays Singapore 2016Application Security at DevOps Speed - DevOpsDays Singapore 2016
Application Security at DevOps Speed - DevOpsDays Singapore 2016Stefan Streichsbier
 
Integrating DevOps and Security
Integrating DevOps and SecurityIntegrating DevOps and Security
Integrating DevOps and SecurityStijn Muylle
 
DevSecCon Asia 2017 Fabian Lim: DevSecOps in the government
DevSecCon Asia 2017 Fabian Lim: DevSecOps in the governmentDevSecCon Asia 2017 Fabian Lim: DevSecOps in the government
DevSecCon Asia 2017 Fabian Lim: DevSecOps in the governmentDevSecCon
 
AWS re:Invent 2016: Embracing DevSecOps while Improving Compliance and Securi...
AWS re:Invent 2016: Embracing DevSecOps while Improving Compliance and Securi...AWS re:Invent 2016: Embracing DevSecOps while Improving Compliance and Securi...
AWS re:Invent 2016: Embracing DevSecOps while Improving Compliance and Securi...Amazon Web Services
 
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...Sonatype
 

En vedette (20)

Programming Language Selection
Programming Language SelectionProgramming Language Selection
Programming Language Selection
 
Twilio Presents at PariSoMa
Twilio Presents at PariSoMaTwilio Presents at PariSoMa
Twilio Presents at PariSoMa
 
Twilio at the Google App Engine Meetup 2009-10
Twilio at the Google App Engine Meetup 2009-10Twilio at the Google App Engine Meetup 2009-10
Twilio at the Google App Engine Meetup 2009-10
 
Twilio - Monetizing SaaS - Jeff Lawson Cloudstock December 2010
Twilio - Monetizing SaaS - Jeff Lawson Cloudstock December 2010Twilio - Monetizing SaaS - Jeff Lawson Cloudstock December 2010
Twilio - Monetizing SaaS - Jeff Lawson Cloudstock December 2010
 
Twilio SMS - API for Sending & Receiving SMS Messages
Twilio SMS - API for Sending & Receiving SMS MessagesTwilio SMS - API for Sending & Receiving SMS Messages
Twilio SMS - API for Sending & Receiving SMS Messages
 
"Reinventing the Dialplan" slides from Twilio's Astricon 2009 talk
"Reinventing the Dialplan" slides from Twilio's Astricon 2009 talk"Reinventing the Dialplan" slides from Twilio's Astricon 2009 talk
"Reinventing the Dialplan" slides from Twilio's Astricon 2009 talk
 
DevSecOps - The big picture
DevSecOps - The big pictureDevSecOps - The big picture
DevSecOps - The big picture
 
2012: Putting your robots to work: security automation at Twitter
2012: Putting your robots to work: security automation at Twitter2012: Putting your robots to work: security automation at Twitter
2012: Putting your robots to work: security automation at Twitter
 
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
 
John sheehan of twillio gives cloud camp denver lightning talk
John sheehan of twillio gives cloud camp denver lightning talkJohn sheehan of twillio gives cloud camp denver lightning talk
John sheehan of twillio gives cloud camp denver lightning talk
 
Twilio Contact Center Overview
Twilio Contact Center OverviewTwilio Contact Center Overview
Twilio Contact Center Overview
 
How To Track Calls Using Twilio?
How To Track Calls Using Twilio?How To Track Calls Using Twilio?
How To Track Calls Using Twilio?
 
Twilio Web Service API for building Voice Applications
Twilio Web Service API for building Voice ApplicationsTwilio Web Service API for building Voice Applications
Twilio Web Service API for building Voice Applications
 
What Can You Do With Twilio
What Can You Do With TwilioWhat Can You Do With Twilio
What Can You Do With Twilio
 
DevSecOps in Baby Steps
DevSecOps in Baby StepsDevSecOps in Baby Steps
DevSecOps in Baby Steps
 
Application Security at DevOps Speed - DevOpsDays Singapore 2016
Application Security at DevOps Speed - DevOpsDays Singapore 2016Application Security at DevOps Speed - DevOpsDays Singapore 2016
Application Security at DevOps Speed - DevOpsDays Singapore 2016
 
Integrating DevOps and Security
Integrating DevOps and SecurityIntegrating DevOps and Security
Integrating DevOps and Security
 
DevSecCon Asia 2017 Fabian Lim: DevSecOps in the government
DevSecCon Asia 2017 Fabian Lim: DevSecOps in the governmentDevSecCon Asia 2017 Fabian Lim: DevSecOps in the government
DevSecCon Asia 2017 Fabian Lim: DevSecOps in the government
 
AWS re:Invent 2016: Embracing DevSecOps while Improving Compliance and Securi...
AWS re:Invent 2016: Embracing DevSecOps while Improving Compliance and Securi...AWS re:Invent 2016: Embracing DevSecOps while Improving Compliance and Securi...
AWS re:Invent 2016: Embracing DevSecOps while Improving Compliance and Securi...
 
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
 

Similaire à Building A Great API - Evan Cooke, Cloudstock, December 2010

Manage your Public API Like a Protocol
Manage your Public API Like a ProtocolManage your Public API Like a Protocol
Manage your Public API Like a ProtocolDelyn Simons
 
Building a REST API for Longevity
Building a REST API for LongevityBuilding a REST API for Longevity
Building a REST API for LongevityMuleSoft
 
API Introduction - API Management Workshop Munich from Ronnie Mitra
API Introduction - API Management Workshop Munich from Ronnie MitraAPI Introduction - API Management Workshop Munich from Ronnie Mitra
API Introduction - API Management Workshop Munich from Ronnie MitraCA API Management
 
Chris Mathias Presents Advanced API Design Considerations at LA CTO Forum
Chris Mathias Presents Advanced API Design Considerations at LA CTO ForumChris Mathias Presents Advanced API Design Considerations at LA CTO Forum
Chris Mathias Presents Advanced API Design Considerations at LA CTO ForumChris Mathias
 
Combining Healthcare Standards with Other RESTful APIs
Combining Healthcare Standards with Other RESTful APIsCombining Healthcare Standards with Other RESTful APIs
Combining Healthcare Standards with Other RESTful APIsBrad Genereaux
 
TAUS Webinar - Introduction to the Gengo API Ecosystem
TAUS Webinar - Introduction to the Gengo API EcosystemTAUS Webinar - Introduction to the Gengo API Ecosystem
TAUS Webinar - Introduction to the Gengo API EcosystemGengo
 
Создание API, которое полюбят разработчики. Глубокое погружение
Создание API, которое полюбят разработчики. Глубокое погружениеСоздание API, которое полюбят разработчики. Глубокое погружение
Создание API, которое полюбят разработчики. Глубокое погружениеSQALab
 
Global Azure2021 Verona.pptx
Global Azure2021 Verona.pptxGlobal Azure2021 Verona.pptx
Global Azure2021 Verona.pptxLuis Beltran
 
Building Content-Rich Java Apps in the Cloud with the Alfresco API
Building Content-Rich Java Apps in the Cloud with the Alfresco APIBuilding Content-Rich Java Apps in the Cloud with the Alfresco API
Building Content-Rich Java Apps in the Cloud with the Alfresco APIJeff Potts
 
Building the Eventbrite API Ecosystem
Building the Eventbrite API EcosystemBuilding the Eventbrite API Ecosystem
Building the Eventbrite API EcosystemMitch Colleran
 
RAML - APIs By Design
RAML - APIs By DesignRAML - APIs By Design
RAML - APIs By DesignUri Sarid
 
Lessons learned on the Azure API Stewardship Journey.pptx
Lessons learned on the Azure API Stewardship Journey.pptxLessons learned on the Azure API Stewardship Journey.pptx
Lessons learned on the Azure API Stewardship Journey.pptxapidays
 
INTERFACE, by apidays - The 8 Key Components of a Modern API Stack by Iddo G...
INTERFACE, by apidays  - The 8 Key Components of a Modern API Stack by Iddo G...INTERFACE, by apidays  - The 8 Key Components of a Modern API Stack by Iddo G...
INTERFACE, by apidays - The 8 Key Components of a Modern API Stack by Iddo G...apidays
 
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
 
Nom Nom: Consuming REST APIs
Nom Nom: Consuming REST APIsNom Nom: Consuming REST APIs
Nom Nom: Consuming REST APIsTessa Mero
 
JOSA TechTalks - RESTful API Concepts and Best Practices
JOSA TechTalks - RESTful API Concepts and Best PracticesJOSA TechTalks - RESTful API Concepts and Best Practices
JOSA TechTalks - RESTful API Concepts and Best PracticesJordan Open Source Association
 
Reaching 1 Million APIs and what to do when we get there
Reaching 1 Million APIs and what to do when we get thereReaching 1 Million APIs and what to do when we get there
Reaching 1 Million APIs and what to do when we get there3scale
 
5 Keys to API Design - API Days Paris 2013
5 Keys to API Design - API Days Paris 20135 Keys to API Design - API Days Paris 2013
5 Keys to API Design - API Days Paris 2013Daniel Feist
 
apidays LIVE Paris 2021 - Lessons from the API Stewardship Journey in Azure b...
apidays LIVE Paris 2021 - Lessons from the API Stewardship Journey in Azure b...apidays LIVE Paris 2021 - Lessons from the API Stewardship Journey in Azure b...
apidays LIVE Paris 2021 - Lessons from the API Stewardship Journey in Azure b...apidays
 
How APIs are Changing Software Development
How APIs are Changing Software DevelopmentHow APIs are Changing Software Development
How APIs are Changing Software Development3scale
 

Similaire à Building A Great API - Evan Cooke, Cloudstock, December 2010 (20)

Manage your Public API Like a Protocol
Manage your Public API Like a ProtocolManage your Public API Like a Protocol
Manage your Public API Like a Protocol
 
Building a REST API for Longevity
Building a REST API for LongevityBuilding a REST API for Longevity
Building a REST API for Longevity
 
API Introduction - API Management Workshop Munich from Ronnie Mitra
API Introduction - API Management Workshop Munich from Ronnie MitraAPI Introduction - API Management Workshop Munich from Ronnie Mitra
API Introduction - API Management Workshop Munich from Ronnie Mitra
 
Chris Mathias Presents Advanced API Design Considerations at LA CTO Forum
Chris Mathias Presents Advanced API Design Considerations at LA CTO ForumChris Mathias Presents Advanced API Design Considerations at LA CTO Forum
Chris Mathias Presents Advanced API Design Considerations at LA CTO Forum
 
Combining Healthcare Standards with Other RESTful APIs
Combining Healthcare Standards with Other RESTful APIsCombining Healthcare Standards with Other RESTful APIs
Combining Healthcare Standards with Other RESTful APIs
 
TAUS Webinar - Introduction to the Gengo API Ecosystem
TAUS Webinar - Introduction to the Gengo API EcosystemTAUS Webinar - Introduction to the Gengo API Ecosystem
TAUS Webinar - Introduction to the Gengo API Ecosystem
 
Создание API, которое полюбят разработчики. Глубокое погружение
Создание API, которое полюбят разработчики. Глубокое погружениеСоздание API, которое полюбят разработчики. Глубокое погружение
Создание API, которое полюбят разработчики. Глубокое погружение
 
Global Azure2021 Verona.pptx
Global Azure2021 Verona.pptxGlobal Azure2021 Verona.pptx
Global Azure2021 Verona.pptx
 
Building Content-Rich Java Apps in the Cloud with the Alfresco API
Building Content-Rich Java Apps in the Cloud with the Alfresco APIBuilding Content-Rich Java Apps in the Cloud with the Alfresco API
Building Content-Rich Java Apps in the Cloud with the Alfresco API
 
Building the Eventbrite API Ecosystem
Building the Eventbrite API EcosystemBuilding the Eventbrite API Ecosystem
Building the Eventbrite API Ecosystem
 
RAML - APIs By Design
RAML - APIs By DesignRAML - APIs By Design
RAML - APIs By Design
 
Lessons learned on the Azure API Stewardship Journey.pptx
Lessons learned on the Azure API Stewardship Journey.pptxLessons learned on the Azure API Stewardship Journey.pptx
Lessons learned on the Azure API Stewardship Journey.pptx
 
INTERFACE, by apidays - The 8 Key Components of a Modern API Stack by Iddo G...
INTERFACE, by apidays  - The 8 Key Components of a Modern API Stack by Iddo G...INTERFACE, by apidays  - The 8 Key Components of a Modern API Stack by Iddo G...
INTERFACE, by apidays - The 8 Key Components of a Modern API Stack by Iddo G...
 
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
 
Nom Nom: Consuming REST APIs
Nom Nom: Consuming REST APIsNom Nom: Consuming REST APIs
Nom Nom: Consuming REST APIs
 
JOSA TechTalks - RESTful API Concepts and Best Practices
JOSA TechTalks - RESTful API Concepts and Best PracticesJOSA TechTalks - RESTful API Concepts and Best Practices
JOSA TechTalks - RESTful API Concepts and Best Practices
 
Reaching 1 Million APIs and what to do when we get there
Reaching 1 Million APIs and what to do when we get thereReaching 1 Million APIs and what to do when we get there
Reaching 1 Million APIs and what to do when we get there
 
5 Keys to API Design - API Days Paris 2013
5 Keys to API Design - API Days Paris 20135 Keys to API Design - API Days Paris 2013
5 Keys to API Design - API Days Paris 2013
 
apidays LIVE Paris 2021 - Lessons from the API Stewardship Journey in Azure b...
apidays LIVE Paris 2021 - Lessons from the API Stewardship Journey in Azure b...apidays LIVE Paris 2021 - Lessons from the API Stewardship Journey in Azure b...
apidays LIVE Paris 2021 - Lessons from the API Stewardship Journey in Azure b...
 
How APIs are Changing Software Development
How APIs are Changing Software DevelopmentHow APIs are Changing Software Development
How APIs are Changing Software Development
 

Plus de Twilio Inc

Building Blocks for Next Generation Contact Centers
Building Blocks for Next Generation Contact CentersBuilding Blocks for Next Generation Contact Centers
Building Blocks for Next Generation Contact CentersTwilio Inc
 
Create an IVR that Keeps Up with Your Customers
Create an IVR that Keeps Up with Your CustomersCreate an IVR that Keeps Up with Your Customers
Create an IVR that Keeps Up with Your CustomersTwilio Inc
 
Salesforce’s Andy Kung on the Power of CRM Integrations
 Salesforce’s Andy Kung on the Power of CRM Integrations Salesforce’s Andy Kung on the Power of CRM Integrations
Salesforce’s Andy Kung on the Power of CRM IntegrationsTwilio Inc
 
All Web Leads’ Lorena Lauv on How to Scale a Virtual Call Center
All Web Leads’ Lorena Lauv on How to Scale a Virtual Call CenterAll Web Leads’ Lorena Lauv on How to Scale a Virtual Call Center
All Web Leads’ Lorena Lauv on How to Scale a Virtual Call CenterTwilio Inc
 
Why Mobile Messaging Works?
Why Mobile Messaging Works?Why Mobile Messaging Works?
Why Mobile Messaging Works?Twilio Inc
 
Understand How Consumers Use Messaging
Understand How Consumers Use MessagingUnderstand How Consumers Use Messaging
Understand How Consumers Use MessagingTwilio Inc
 
Twilio Signal 2016 WebRTC Reborn
Twilio Signal 2016 WebRTC RebornTwilio Signal 2016 WebRTC Reborn
Twilio Signal 2016 WebRTC RebornTwilio Inc
 
Twilio Signal 2016 Using Add-ons
Twilio Signal 2016 Using Add-onsTwilio Signal 2016 Using Add-ons
Twilio Signal 2016 Using Add-onsTwilio Inc
 
Twilio Signal 2016 Technical Blogging
Twilio Signal 2016 Technical Blogging Twilio Signal 2016 Technical Blogging
Twilio Signal 2016 Technical Blogging Twilio Inc
 
Twilio Signal 2016 Serverless Contact Center
Twilio Signal 2016 Serverless Contact CenterTwilio Signal 2016 Serverless Contact Center
Twilio Signal 2016 Serverless Contact CenterTwilio Inc
 
Twilio Signal 2016 Robots-IoT-Watson-Cognitive + Twilio
Twilio Signal 2016 Robots-IoT-Watson-Cognitive + TwilioTwilio Signal 2016 Robots-IoT-Watson-Cognitive + Twilio
Twilio Signal 2016 Robots-IoT-Watson-Cognitive + TwilioTwilio Inc
 
Twilio Signal 2016 Leading An Open Hardware Revolution
Twilio Signal 2016 Leading An Open Hardware RevolutionTwilio Signal 2016 Leading An Open Hardware Revolution
Twilio Signal 2016 Leading An Open Hardware RevolutionTwilio Inc
 
Twilio Signal 2016 IoT Using LittleBits and Twilio SMS
Twilio Signal 2016 IoT Using LittleBits and Twilio SMSTwilio Signal 2016 IoT Using LittleBits and Twilio SMS
Twilio Signal 2016 IoT Using LittleBits and Twilio SMSTwilio Inc
 
Twilio Signal 2016 Chaos Patterns
Twilio Signal 2016 Chaos PatternsTwilio Signal 2016 Chaos Patterns
Twilio Signal 2016 Chaos PatternsTwilio Inc
 
Twilio Signal 2016 How to Impact Non-profits
Twilio Signal 2016 How to Impact Non-profits Twilio Signal 2016 How to Impact Non-profits
Twilio Signal 2016 How to Impact Non-profits Twilio Inc
 
Twilio Signal 2016 Bringing P2P to the Masses with WebRTC
Twilio Signal 2016 Bringing P2P to the Masses with WebRTCTwilio Signal 2016 Bringing P2P to the Masses with WebRTC
Twilio Signal 2016 Bringing P2P to the Masses with WebRTCTwilio Inc
 
Twilio Signal 2016 Listing Services and Lead Generation
Twilio Signal 2016 Listing Services and Lead GenerationTwilio Signal 2016 Listing Services and Lead Generation
Twilio Signal 2016 Listing Services and Lead GenerationTwilio Inc
 
Twilio Signal 2016 Bots
Twilio Signal 2016 BotsTwilio Signal 2016 Bots
Twilio Signal 2016 BotsTwilio Inc
 
Twilio Signal 2016 Taking Your SMS App Global
Twilio Signal 2016 Taking Your SMS App GlobalTwilio Signal 2016 Taking Your SMS App Global
Twilio Signal 2016 Taking Your SMS App GlobalTwilio Inc
 
Twilio Signal 2016 Real-time Communications Overview
Twilio Signal 2016 Real-time Communications OverviewTwilio Signal 2016 Real-time Communications Overview
Twilio Signal 2016 Real-time Communications OverviewTwilio Inc
 

Plus de Twilio Inc (20)

Building Blocks for Next Generation Contact Centers
Building Blocks for Next Generation Contact CentersBuilding Blocks for Next Generation Contact Centers
Building Blocks for Next Generation Contact Centers
 
Create an IVR that Keeps Up with Your Customers
Create an IVR that Keeps Up with Your CustomersCreate an IVR that Keeps Up with Your Customers
Create an IVR that Keeps Up with Your Customers
 
Salesforce’s Andy Kung on the Power of CRM Integrations
 Salesforce’s Andy Kung on the Power of CRM Integrations Salesforce’s Andy Kung on the Power of CRM Integrations
Salesforce’s Andy Kung on the Power of CRM Integrations
 
All Web Leads’ Lorena Lauv on How to Scale a Virtual Call Center
All Web Leads’ Lorena Lauv on How to Scale a Virtual Call CenterAll Web Leads’ Lorena Lauv on How to Scale a Virtual Call Center
All Web Leads’ Lorena Lauv on How to Scale a Virtual Call Center
 
Why Mobile Messaging Works?
Why Mobile Messaging Works?Why Mobile Messaging Works?
Why Mobile Messaging Works?
 
Understand How Consumers Use Messaging
Understand How Consumers Use MessagingUnderstand How Consumers Use Messaging
Understand How Consumers Use Messaging
 
Twilio Signal 2016 WebRTC Reborn
Twilio Signal 2016 WebRTC RebornTwilio Signal 2016 WebRTC Reborn
Twilio Signal 2016 WebRTC Reborn
 
Twilio Signal 2016 Using Add-ons
Twilio Signal 2016 Using Add-onsTwilio Signal 2016 Using Add-ons
Twilio Signal 2016 Using Add-ons
 
Twilio Signal 2016 Technical Blogging
Twilio Signal 2016 Technical Blogging Twilio Signal 2016 Technical Blogging
Twilio Signal 2016 Technical Blogging
 
Twilio Signal 2016 Serverless Contact Center
Twilio Signal 2016 Serverless Contact CenterTwilio Signal 2016 Serverless Contact Center
Twilio Signal 2016 Serverless Contact Center
 
Twilio Signal 2016 Robots-IoT-Watson-Cognitive + Twilio
Twilio Signal 2016 Robots-IoT-Watson-Cognitive + TwilioTwilio Signal 2016 Robots-IoT-Watson-Cognitive + Twilio
Twilio Signal 2016 Robots-IoT-Watson-Cognitive + Twilio
 
Twilio Signal 2016 Leading An Open Hardware Revolution
Twilio Signal 2016 Leading An Open Hardware RevolutionTwilio Signal 2016 Leading An Open Hardware Revolution
Twilio Signal 2016 Leading An Open Hardware Revolution
 
Twilio Signal 2016 IoT Using LittleBits and Twilio SMS
Twilio Signal 2016 IoT Using LittleBits and Twilio SMSTwilio Signal 2016 IoT Using LittleBits and Twilio SMS
Twilio Signal 2016 IoT Using LittleBits and Twilio SMS
 
Twilio Signal 2016 Chaos Patterns
Twilio Signal 2016 Chaos PatternsTwilio Signal 2016 Chaos Patterns
Twilio Signal 2016 Chaos Patterns
 
Twilio Signal 2016 How to Impact Non-profits
Twilio Signal 2016 How to Impact Non-profits Twilio Signal 2016 How to Impact Non-profits
Twilio Signal 2016 How to Impact Non-profits
 
Twilio Signal 2016 Bringing P2P to the Masses with WebRTC
Twilio Signal 2016 Bringing P2P to the Masses with WebRTCTwilio Signal 2016 Bringing P2P to the Masses with WebRTC
Twilio Signal 2016 Bringing P2P to the Masses with WebRTC
 
Twilio Signal 2016 Listing Services and Lead Generation
Twilio Signal 2016 Listing Services and Lead GenerationTwilio Signal 2016 Listing Services and Lead Generation
Twilio Signal 2016 Listing Services and Lead Generation
 
Twilio Signal 2016 Bots
Twilio Signal 2016 BotsTwilio Signal 2016 Bots
Twilio Signal 2016 Bots
 
Twilio Signal 2016 Taking Your SMS App Global
Twilio Signal 2016 Taking Your SMS App GlobalTwilio Signal 2016 Taking Your SMS App Global
Twilio Signal 2016 Taking Your SMS App Global
 
Twilio Signal 2016 Real-time Communications Overview
Twilio Signal 2016 Real-time Communications OverviewTwilio Signal 2016 Real-time Communications Overview
Twilio Signal 2016 Real-time Communications Overview
 

Dernier

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
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
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
 
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
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
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 pragmaticscarlostorres15106
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
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
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
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
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 

Dernier (20)

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
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
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?
 
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
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
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
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
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
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
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
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 

Building A Great API - Evan Cooke, Cloudstock, December 2010

  • 1. twilio CLOUD COMMUNICATIONS BUILDING A GREAT API DECEMBER 6, 2010, CLOUDSTOCK EVAN COOKE
  • 2. Why make Great APIs? Hear about API Good APIs Promote Adoption Use in production (tell friends)
  • 3. Today’s discussion focuses on APIs exposed by Internet services, however, the ideas we discuss can be applied in many contexts
  • 4. Where Do APIs Come From? • APIs that have grown from products End Users Facebook API API API
  • 5. Where Do APIs Come From? • APIs that are the product End Users Developers Cloud API
  • 6. Twilio Web service APIs to automate Voice and SMS communications Phone Voice SMS Numbers Inbound Calls To/From Phone APIs to Outbound Calls Numbers Dynamically IVR Short Codes Provision Phone Numbers
  • 7. Outline 1. Case Studies 2. Design 3. Presentation 4. Development
  • 9. What NOT to Do • Media processing API Vendor • Telecom API
  • 10. Media processing API • HTTP API to analyze large media files • Tx Rate 100,000/day (costly) Media • POST data to the API You Analysis API • API synchronously returns analysis of media (could be minutes/hours later)
  • 11. Media processing API • Control and data in the same request (100 MB every request) • Unclear error conditions. Can you resend request? You API • Synchronously wait for ??? response • No request history/billing information
  • 12. Media processing API 1 Original Request POST http://api.vendor.com/API/Process? key=2hkh&mode=bob&filter=yeah Body is 100MB of binary data
  • 13. Media processing API 2 Add a token allowing us to safely retry POST http://api.vendor.com/API/Process? key=2hkh&mode=bob&filter=yeah&token=TK123 Body is 100MB of binary data
  • 14. Media processing API 3 Add webhook url to asynchronously respond POST http://api.vendor.com/API/Process? key=2hkh&mode=bob&filter=yeah&token=TK123&c bUrl=http%3A%2F%2Fmyserver.com%2Fresponse Body is 100MB of binary data
  • 15. Media processing API 4 Async fetch media & move POST params to body POST http://api.vendor.com/API/Process Body key=2hkh mode=bob filter=yeah token=TK123 cbUrl=http://myserver.com/response mediaUrl=http://s3.com/media.mov
  • 16. Media processing API 5 Version API and make URL more RESTful POST http://api.vendor.com/v1/Media Body key=2hkh mode=bob filter=yeah token=TK123 cbUrl=http://myserver.com/response mediaUrl=http://s3.com/media.mov Response URI http://api.vendor.com/v1/Media/MD123
  • 17. What NOT to Do • Media processing API Vendor • Telecom API
  • 18. Telecom API • API to manage phone numbers • Documentation is 300 page PDF, pages of WSDL • 95% useless RPC functions that expose internal business logic • No simple way to get started • No helper libraries
  • 20. Key Ideas • Idempotency • Self-documenting • RESTfulness • Versioning • Statefulness • Predictability • Sync vs. Async
  • 21. Idempotency • Idempotence is the property of certain operations that they can be applied multiple times without changing the result. • Request failures happen. Provide users a safe way to retry requests • Example: POST /BankAccount/AddFunds {‘value’: 1000, ‘token’: ‘TX123’}
  • 22. Self-documenting • Sweat what and how you name. Naming is is the best documentation. • Example: GET /Users/ID123 GET /Users/ID123/Friends GET /Users/ID123/Photos
  • 23. RESTfulness • Adherence to REST object model and verbs provides a clean way to expose business logic • Create POST /Users • Fetch GET /Users/ID123 • Modify PUT/POST /Users/ID123 • Remove DELETE /Users/ID123
  • 24. Versioning • Do it. Remember you will be stuck supporting old API versions (indefinitely?) • Examples GET /api/v1/blag GET /api/20101206/blag
  • 25. Statefulness • When possible, offload the work of keeping state/history because it’s hard! • Examples POST /Calls GET /Calls/CA123 GET /Calls/CA123/Recordings/RE123
  • 26. Predictability • The API should do what users expect • Examples <Play>music.mp3</Play> <Play>music.aiff</Play>
  • 27. Sync vs Async • When a response is available immediately, use a synchronous response. Otherwise, consider an asynchronous Webhook rather then polling • Examples: POST /Object/Transforms Body cbUrl=http://b.com/response
  • 29. Great APIs • Redis - Key/Value, List, and Set Persistence • Dropbox - REST, iOS/Android File Mgnt • Wufoo - Web forms Other Notable APIs SimpleGeo, Github, Posterous, Tumblr, Facebook... great, but getting to their docs requires authenticating!
  • 30. Redis • Simple, well named API calls • Powerful • APIs that cover major operational tasks
  • 31. Dropbox • API support across platforms/ languages • Community integration
  • 32. Wufoo • Simple well- documented REST API • Good use of HTTP verbs and errors
  • 33. What makes a Good API? • Easy to Learn • Easy to use (even without documentation) • Hard to Misuse • Easy to read and maintain code that uses it • Sufficiently powerful to satisfy requirements • Easy to extend • Appropriate to audience How to Design a Good API and Why it Matters Joshua Block, Google
  • 36. Easy to read/maintain code HTTP/XML/JSON REST Customer Telecom Business Goo Logic
  • 37. Sufficiently Powerful It sure helps to write code live if you are pitching to developers. John got a big nod from the audience for doing that. But the important point is that when you show your product live in front of people, they can get what you are doing way faster than working through a bunch of slides. Kudos to John for an excellent pitch. Apparently Business Insider called it "the best demo we've ever seen.
  • 38. Easy to extend Expose Twilio in an async evented model
  • 40. Twilio Process 1. Customers Feedback 2. Documentation 3. Team feedback (back to 2) 4. Prototype (2-3 weeks) 5. Alpha customers 6. Preview Customers 7. General Release
  • 41. Design Idempotent, self-documenting, RESTful, versioned, stateful, predictable, sync/async Presentation Easy to learn, easy to use, easy to read and maintainable, sufficiently powerful, easy to extend Development Customers, documentation, team, prototype, alpha customers, preview customers, release