SlideShare a Scribd company logo
1 of 32
Download to read offline
AVOIDING WATERFALLS


                          Jakub Nesetril
                          founder & CEO of Apiary




Tuesday, December 4, 12
apiary.io
                          GitHub for APIs

Tuesday, December 4, 12
WHY WE DO THINGS
    • documentation            and tooling, not architecture

    • man-years            of API infrastructure work

    • companies            & teams re-inventing the wheel




Tuesday, December 4, 12
3 PROBLEMS




Tuesday, December 4, 12
API DESIGN




Tuesday, December 4, 12
WE START WITH WHITEBOARD




Tuesday, December 4, 12
THEN CODE THE DESIGN




Tuesday, December 4, 12
OFFER IT TO CUSTOMERS




Tuesday, December 4, 12
AND ALL FAILS, BADLY




Tuesday, December 4, 12
WHERE DID WE GO WRONG?




Tuesday, December 4, 12
WATERFALL PROCESS




Tuesday, December 4, 12
API DESIGN
                          REIMAGINED

                 HOW CAN WE GO AGILE?

Tuesday, December 4, 12
MAKE A DESIGN FIRST




Tuesday, December 4, 12
BUT WRITE IT DOWN FOR
                    ALL TO USE
         HOST: http://api.twitter.com/

         --- Twitter API 3.0 ---
         ---
         Welcome to our API. Comments support Markdown syntax
         ---

         -- Retrieve Tweets --
         GET /tweets
         > Accept: application/json
         < 200
         < Content-Type: application/json
         { "items": [
           { "url": "/feed", "range":"2ZY48XPZ", "quantity": 1, "name": "New
         socks", "price": 1.25 }
         ] }

Tuesday, December 4, 12
OFFER A MOCK SERVER




Tuesday, December 4, 12
INVOLVE THE CUSTOMER


Tuesday, December 4, 12
CODE WITH SPEC TESTS




Tuesday, December 4, 12
Mock > Use > Implement




                                                   apiary.io




Tuesday, December 4, 12
DOCUMENTATION




Tuesday, December 4, 12
#2: DOCUMENTATION
    • how           do I make an HTTP call?

    • try       to follow documentation but API behaves differently

    • is     it invalid? is it outdated? am I doing it wrong?




Tuesday, December 4, 12
DOCUMENTATION
          REIMAGINED



Tuesday, December 4, 12
DOCUMENTATION
    • includes            runnable code examples (NOT API console)

    • is     backed up by automated tests (never out of date)




Tuesday, December 4, 12
Tuesday, December 4, 12
SUPPORT




Tuesday, December 4, 12
#3: SUPPORT
    • my API              calls are failing, no idea why

    • contacting             customer support (that caters to shoe customers)

    • bumping   my head against first-tier support for days until I get
        connected to developers

    • by   that time, debug information is lost, logs are rotated, new
        product version is deployed…



Tuesday, December 4, 12
SUPPORT
                          REIMAGINED



Tuesday, December 4, 12
SUPPORT
    • includes            self-service debugger

    • API    support requests routed directly to devs with debugging
        information included




Tuesday, December 4, 12
Tuesday, December 4, 12
Mock > Use > Implement




                          Automated       Documentation
                           Testing                     apiary.io




Tuesday, December 4, 12
COME HELP US
                            http://github.com/apiaryio
                             http://support.apiary.io/




Tuesday, December 4, 12
Q&A
                          E-MAIL   jakub@apiary.io   TWITTER   @apiaryio




Tuesday, December 4, 12
PHOTO CREDITS

    http://www.flickr.com/photos/ironrodart/4308675209/sizes/o/
    http://www.flickr.com/photos/schlosi/6153707178/sizes/l/
    http://www.flickr.com/photos/72153088@N08/6510934443/sizes/l/
    http://www.flickr.com/photos/psd/3470234703/sizes/l/
    http://www.flickr.com/photos/code_martial/2501920341/sizes/l/
    http://www.flickr.com/photos/weesen/3589267112/sizes/l/
    http://www.flickr.com/photos/weesen/3588454913/sizes/l/
    http://www.flickr.com/photos/weesen/3589258380/sizes/l/
    http://www.flickr.com/photos/polishsausagequeen/2178265710/
    http://www.flickr.com/photos/stupidmommy/2649444581/sizes/z/




Tuesday, December 4, 12

More Related Content

What's hot

Serverless: when functions and GitOps collide
Serverless: when functions and GitOps collideServerless: when functions and GitOps collide
Serverless: when functions and GitOps collideEdward Wilde
 
DevOps Columbus Meetup Kickoff - Infrastructure as Code
DevOps Columbus Meetup Kickoff - Infrastructure as CodeDevOps Columbus Meetup Kickoff - Infrastructure as Code
DevOps Columbus Meetup Kickoff - Infrastructure as CodeMichael Ducy
 
Intro to Ember CLI
Intro to Ember CLIIntro to Ember CLI
Intro to Ember CLIJay Phelps
 
WordPress Rest API
WordPress Rest APIWordPress Rest API
WordPress Rest APIBrian Layman
 
WordPress Theme Workshop: Part 4
WordPress Theme Workshop: Part 4WordPress Theme Workshop: Part 4
WordPress Theme Workshop: Part 4David Bisset
 
Widening your JavaScript Application
Widening your JavaScript ApplicationWidening your JavaScript Application
Widening your JavaScript ApplicationAlex McPherson
 
Conexão Kinghost - Otimização Prematura
Conexão Kinghost - Otimização PrematuraConexão Kinghost - Otimização Prematura
Conexão Kinghost - Otimização PrematuraFabio Akita
 
Hateoas APIs are about relationships
Hateoas APIs are about relationshipsHateoas APIs are about relationships
Hateoas APIs are about relationshipsMatt Bishop
 
Best Practices in SharePoint Development - Just Freakin Work! Overcoming Hurd...
Best Practices in SharePoint Development - Just Freakin Work! Overcoming Hurd...Best Practices in SharePoint Development - Just Freakin Work! Overcoming Hurd...
Best Practices in SharePoint Development - Just Freakin Work! Overcoming Hurd...Geoff Varosky
 
Premature optimisation: The Root of All Evil
Premature optimisation: The Root of All EvilPremature optimisation: The Root of All Evil
Premature optimisation: The Root of All EvilFabio Akita
 
Working with WordPress in a Team Environment
Working with WordPress in a Team EnvironmentWorking with WordPress in a Team Environment
Working with WordPress in a Team Environmentchristopherfross
 
Decoding Core Contribution - WordCamp San Diego 2013
Decoding Core Contribution - WordCamp San Diego 2013Decoding Core Contribution - WordCamp San Diego 2013
Decoding Core Contribution - WordCamp San Diego 2013GetSource
 
What a Thing API Should Look Like (Global IoT Day Wien)
What a Thing API Should Look Like (Global IoT Day Wien)What a Thing API Should Look Like (Global IoT Day Wien)
What a Thing API Should Look Like (Global IoT Day Wien)David Janes
 
Why do you need Clever Cloud ?
Why do you need Clever Cloud ?Why do you need Clever Cloud ?
Why do you need Clever Cloud ?Quentin Adam
 
My Website Can Vote - The Challenges of Maintaining a 20-year-old Website
My Website Can Vote - The Challenges of Maintaining a 20-year-old WebsiteMy Website Can Vote - The Challenges of Maintaining a 20-year-old Website
My Website Can Vote - The Challenges of Maintaining a 20-year-old WebsiteKristine Howard
 
Untangling spring week6
Untangling spring week6Untangling spring week6
Untangling spring week6Derek Jacoby
 
WordPress Security 101 - Meetup Nairobi March 2020
WordPress Security 101 - Meetup Nairobi March 2020 WordPress Security 101 - Meetup Nairobi March 2020
WordPress Security 101 - Meetup Nairobi March 2020 stk_jj
 
Getting the best value out of your unit tests
Getting the best value out of your unit testsGetting the best value out of your unit tests
Getting the best value out of your unit testsRobert Baillie
 
The Open Commerce Conference - Premature Optimisation: The Root of All Evil
The Open Commerce Conference - Premature Optimisation: The Root of All EvilThe Open Commerce Conference - Premature Optimisation: The Root of All Evil
The Open Commerce Conference - Premature Optimisation: The Root of All EvilFabio Akita
 

What's hot (20)

Serverless: when functions and GitOps collide
Serverless: when functions and GitOps collideServerless: when functions and GitOps collide
Serverless: when functions and GitOps collide
 
DevOps Columbus Meetup Kickoff - Infrastructure as Code
DevOps Columbus Meetup Kickoff - Infrastructure as CodeDevOps Columbus Meetup Kickoff - Infrastructure as Code
DevOps Columbus Meetup Kickoff - Infrastructure as Code
 
Intro to Ember CLI
Intro to Ember CLIIntro to Ember CLI
Intro to Ember CLI
 
WordPress Rest API
WordPress Rest APIWordPress Rest API
WordPress Rest API
 
WordPress Theme Workshop: Part 4
WordPress Theme Workshop: Part 4WordPress Theme Workshop: Part 4
WordPress Theme Workshop: Part 4
 
Widening your JavaScript Application
Widening your JavaScript ApplicationWidening your JavaScript Application
Widening your JavaScript Application
 
Conexão Kinghost - Otimização Prematura
Conexão Kinghost - Otimização PrematuraConexão Kinghost - Otimização Prematura
Conexão Kinghost - Otimização Prematura
 
Hateoas APIs are about relationships
Hateoas APIs are about relationshipsHateoas APIs are about relationships
Hateoas APIs are about relationships
 
Best Practices in SharePoint Development - Just Freakin Work! Overcoming Hurd...
Best Practices in SharePoint Development - Just Freakin Work! Overcoming Hurd...Best Practices in SharePoint Development - Just Freakin Work! Overcoming Hurd...
Best Practices in SharePoint Development - Just Freakin Work! Overcoming Hurd...
 
Esn satellite agm13
Esn satellite agm13Esn satellite agm13
Esn satellite agm13
 
Premature optimisation: The Root of All Evil
Premature optimisation: The Root of All EvilPremature optimisation: The Root of All Evil
Premature optimisation: The Root of All Evil
 
Working with WordPress in a Team Environment
Working with WordPress in a Team EnvironmentWorking with WordPress in a Team Environment
Working with WordPress in a Team Environment
 
Decoding Core Contribution - WordCamp San Diego 2013
Decoding Core Contribution - WordCamp San Diego 2013Decoding Core Contribution - WordCamp San Diego 2013
Decoding Core Contribution - WordCamp San Diego 2013
 
What a Thing API Should Look Like (Global IoT Day Wien)
What a Thing API Should Look Like (Global IoT Day Wien)What a Thing API Should Look Like (Global IoT Day Wien)
What a Thing API Should Look Like (Global IoT Day Wien)
 
Why do you need Clever Cloud ?
Why do you need Clever Cloud ?Why do you need Clever Cloud ?
Why do you need Clever Cloud ?
 
My Website Can Vote - The Challenges of Maintaining a 20-year-old Website
My Website Can Vote - The Challenges of Maintaining a 20-year-old WebsiteMy Website Can Vote - The Challenges of Maintaining a 20-year-old Website
My Website Can Vote - The Challenges of Maintaining a 20-year-old Website
 
Untangling spring week6
Untangling spring week6Untangling spring week6
Untangling spring week6
 
WordPress Security 101 - Meetup Nairobi March 2020
WordPress Security 101 - Meetup Nairobi March 2020 WordPress Security 101 - Meetup Nairobi March 2020
WordPress Security 101 - Meetup Nairobi March 2020
 
Getting the best value out of your unit tests
Getting the best value out of your unit testsGetting the best value out of your unit tests
Getting the best value out of your unit tests
 
The Open Commerce Conference - Premature Optimisation: The Root of All Evil
The Open Commerce Conference - Premature Optimisation: The Root of All EvilThe Open Commerce Conference - Premature Optimisation: The Root of All Evil
The Open Commerce Conference - Premature Optimisation: The Root of All Evil
 

Viewers also liked

Consuming API description languages - Refract & Minim
Consuming API description languages - Refract & MinimConsuming API description languages - Refract & Minim
Consuming API description languages - Refract & MinimJakub Nesetril
 
NodeJS, CoffeeScript & Real-time Web
NodeJS, CoffeeScript & Real-time WebNodeJS, CoffeeScript & Real-time Web
NodeJS, CoffeeScript & Real-time WebJakub Nesetril
 
Budoucnost Web Aplikaci
Budoucnost Web AplikaciBudoucnost Web Aplikaci
Budoucnost Web AplikaciJakub Nesetril
 
Introduction to GoodData BI PaaS
Introduction to GoodData BI PaaSIntroduction to GoodData BI PaaS
Introduction to GoodData BI PaaSJakub Nesetril
 
Advanced Regular Expressions Redux
Advanced Regular Expressions ReduxAdvanced Regular Expressions Redux
Advanced Regular Expressions ReduxJakub Nesetril
 
Introduction to node.js
Introduction to node.jsIntroduction to node.js
Introduction to node.jsJakub Nesetril
 
GoodData: One Stop Shop for Analytics
GoodData: One Stop Shop for AnalyticsGoodData: One Stop Shop for Analytics
GoodData: One Stop Shop for AnalyticsJakub Nesetril
 
Real-time Web a NodeJS
Real-time Web a NodeJSReal-time Web a NodeJS
Real-time Web a NodeJSJakub Nesetril
 
Microservice Stategies - Scaling your API design workflow
Microservice Stategies - Scaling your API design workflowMicroservice Stategies - Scaling your API design workflow
Microservice Stategies - Scaling your API design workflowJakub Nesetril
 
Effingham 2 Apiary Development Grant Gillard
Effingham 2 Apiary Development Grant GillardEffingham 2 Apiary Development Grant Gillard
Effingham 2 Apiary Development Grant GillardGrant Gillard
 

Viewers also liked (19)

Consuming API description languages - Refract & Minim
Consuming API description languages - Refract & MinimConsuming API description languages - Refract & Minim
Consuming API description languages - Refract & Minim
 
Harmony in API Design
Harmony in API DesignHarmony in API Design
Harmony in API Design
 
Post-REST Manifesto
Post-REST ManifestoPost-REST Manifesto
Post-REST Manifesto
 
NodeJS, CoffeeScript & Real-time Web
NodeJS, CoffeeScript & Real-time WebNodeJS, CoffeeScript & Real-time Web
NodeJS, CoffeeScript & Real-time Web
 
Budoucnost Web Aplikaci
Budoucnost Web AplikaciBudoucnost Web Aplikaci
Budoucnost Web Aplikaci
 
Startup Accelerators
Startup AcceleratorsStartup Accelerators
Startup Accelerators
 
Art of Building APIs
Art of Building APIsArt of Building APIs
Art of Building APIs
 
Introduction to GoodData BI PaaS
Introduction to GoodData BI PaaSIntroduction to GoodData BI PaaS
Introduction to GoodData BI PaaS
 
REST API tools
REST API toolsREST API tools
REST API tools
 
Advanced Regular Expressions Redux
Advanced Regular Expressions ReduxAdvanced Regular Expressions Redux
Advanced Regular Expressions Redux
 
Introduction to node.js
Introduction to node.jsIntroduction to node.js
Introduction to node.js
 
GoodData: One Stop Shop for Analytics
GoodData: One Stop Shop for AnalyticsGoodData: One Stop Shop for Analytics
GoodData: One Stop Shop for Analytics
 
Let's Have a Cup of CoffeeScript
Let's Have a Cup of CoffeeScriptLet's Have a Cup of CoffeeScript
Let's Have a Cup of CoffeeScript
 
Node at Apiary.io
Node at Apiary.ioNode at Apiary.io
Node at Apiary.io
 
API Design Workflows
API Design WorkflowsAPI Design Workflows
API Design Workflows
 
Apiary
ApiaryApiary
Apiary
 
Real-time Web a NodeJS
Real-time Web a NodeJSReal-time Web a NodeJS
Real-time Web a NodeJS
 
Microservice Stategies - Scaling your API design workflow
Microservice Stategies - Scaling your API design workflowMicroservice Stategies - Scaling your API design workflow
Microservice Stategies - Scaling your API design workflow
 
Effingham 2 Apiary Development Grant Gillard
Effingham 2 Apiary Development Grant GillardEffingham 2 Apiary Development Grant Gillard
Effingham 2 Apiary Development Grant Gillard
 

Similar to Avoiding API Waterfalls

LiveRebel + Pragmatic Continuous Delivery (Arcusys)
LiveRebel + Pragmatic Continuous Delivery (Arcusys)LiveRebel + Pragmatic Continuous Delivery (Arcusys)
LiveRebel + Pragmatic Continuous Delivery (Arcusys)Neeme Praks
 
Working With Social APIs - SoMeT12
Working With Social APIs - SoMeT12Working With Social APIs - SoMeT12
Working With Social APIs - SoMeT12Mario Vasquez
 
Interactive Project Management Workshop
Interactive Project Management WorkshopInteractive Project Management Workshop
Interactive Project Management WorkshopShelley Simmons
 
The Future of Apache CloudStack (Not So Cloudy) (Collab 2012)
The Future of Apache CloudStack (Not So Cloudy) (Collab 2012)The Future of Apache CloudStack (Not So Cloudy) (Collab 2012)
The Future of Apache CloudStack (Not So Cloudy) (Collab 2012)Chiradeep Vittal
 
Análisis de ataques APT
Análisis de ataques APT Análisis de ataques APT
Análisis de ataques APT linenoise
 
Software Libraries And Numbers
Software Libraries And NumbersSoftware Libraries And Numbers
Software Libraries And NumbersRobert Reiz
 
Continuous delivery a happier, safer alternative to release trains
Continuous delivery   a happier, safer alternative to release trainsContinuous delivery   a happier, safer alternative to release trains
Continuous delivery a happier, safer alternative to release trainsThoughtworks
 
Drupal for Project Managers, Part 3: Launching
Drupal for Project Managers, Part 3: LaunchingDrupal for Project Managers, Part 3: Launching
Drupal for Project Managers, Part 3: LaunchingAcquia
 
Open Business Conference: Continuous Delivery At Netflix -- Powered by Open S...
Open Business Conference: Continuous Delivery At Netflix -- Powered by Open S...Open Business Conference: Continuous Delivery At Netflix -- Powered by Open S...
Open Business Conference: Continuous Delivery At Netflix -- Powered by Open S...Dianne Marsh
 
Devops kc meetup_5_20_2013
Devops kc meetup_5_20_2013Devops kc meetup_5_20_2013
Devops kc meetup_5_20_2013Aaron Blythe
 
Scaling Pinterest
Scaling PinterestScaling Pinterest
Scaling PinterestC4Media
 
2013 - Matías Paterlini: Escalando PHP con sharding y Amazon Web Services
2013 - Matías Paterlini: Escalando PHP con sharding y Amazon Web Services 2013 - Matías Paterlini: Escalando PHP con sharding y Amazon Web Services
2013 - Matías Paterlini: Escalando PHP con sharding y Amazon Web Services PHP Conference Argentina
 
Escalando una PHP App con DB sharding - PHP Conference
Escalando una PHP App con DB sharding - PHP ConferenceEscalando una PHP App con DB sharding - PHP Conference
Escalando una PHP App con DB sharding - PHP ConferenceMatias Paterlini
 
Codeworks'12 Rock Solid Deployment of PHP Apps
Codeworks'12 Rock Solid Deployment of PHP AppsCodeworks'12 Rock Solid Deployment of PHP Apps
Codeworks'12 Rock Solid Deployment of PHP AppsPablo Godel
 
Project management from a Developer's Perspective
Project management from a Developer's PerspectiveProject management from a Developer's Perspective
Project management from a Developer's Perspectivebitchwhocodes
 
Specking Interactors with PHPSpec and YOLO (DDD) at PHPConference Argentina 2013
Specking Interactors with PHPSpec and YOLO (DDD) at PHPConference Argentina 2013Specking Interactors with PHPSpec and YOLO (DDD) at PHPConference Argentina 2013
Specking Interactors with PHPSpec and YOLO (DDD) at PHPConference Argentina 2013cordoval
 
Puppet Camp Berlin 2014: Advanced Puppet Design
Puppet Camp Berlin 2014: Advanced Puppet DesignPuppet Camp Berlin 2014: Advanced Puppet Design
Puppet Camp Berlin 2014: Advanced Puppet DesignPuppet
 

Similar to Avoiding API Waterfalls (20)

LiveRebel + Pragmatic Continuous Delivery (Arcusys)
LiveRebel + Pragmatic Continuous Delivery (Arcusys)LiveRebel + Pragmatic Continuous Delivery (Arcusys)
LiveRebel + Pragmatic Continuous Delivery (Arcusys)
 
Working With Social APIs - SoMeT12
Working With Social APIs - SoMeT12Working With Social APIs - SoMeT12
Working With Social APIs - SoMeT12
 
Interactive Project Management Workshop
Interactive Project Management WorkshopInteractive Project Management Workshop
Interactive Project Management Workshop
 
Best Practices in Theme Development - WordCamp Orlando 2012
Best Practices in Theme Development - WordCamp Orlando 2012Best Practices in Theme Development - WordCamp Orlando 2012
Best Practices in Theme Development - WordCamp Orlando 2012
 
The Future of Apache CloudStack (Not So Cloudy) (Collab 2012)
The Future of Apache CloudStack (Not So Cloudy) (Collab 2012)The Future of Apache CloudStack (Not So Cloudy) (Collab 2012)
The Future of Apache CloudStack (Not So Cloudy) (Collab 2012)
 
Análisis de ataques APT
Análisis de ataques APT Análisis de ataques APT
Análisis de ataques APT
 
Software Libraries And Numbers
Software Libraries And NumbersSoftware Libraries And Numbers
Software Libraries And Numbers
 
Aten ntc-stories
Aten ntc-storiesAten ntc-stories
Aten ntc-stories
 
Continuous delivery a happier, safer alternative to release trains
Continuous delivery   a happier, safer alternative to release trainsContinuous delivery   a happier, safer alternative to release trains
Continuous delivery a happier, safer alternative to release trains
 
Drupal for Project Managers, Part 3: Launching
Drupal for Project Managers, Part 3: LaunchingDrupal for Project Managers, Part 3: Launching
Drupal for Project Managers, Part 3: Launching
 
Open Business Conference: Continuous Delivery At Netflix -- Powered by Open S...
Open Business Conference: Continuous Delivery At Netflix -- Powered by Open S...Open Business Conference: Continuous Delivery At Netflix -- Powered by Open S...
Open Business Conference: Continuous Delivery At Netflix -- Powered by Open S...
 
Devops kc meetup_5_20_2013
Devops kc meetup_5_20_2013Devops kc meetup_5_20_2013
Devops kc meetup_5_20_2013
 
Scaling Pinterest
Scaling PinterestScaling Pinterest
Scaling Pinterest
 
Learning sparql 2012 12
Learning sparql 2012 12Learning sparql 2012 12
Learning sparql 2012 12
 
2013 - Matías Paterlini: Escalando PHP con sharding y Amazon Web Services
2013 - Matías Paterlini: Escalando PHP con sharding y Amazon Web Services 2013 - Matías Paterlini: Escalando PHP con sharding y Amazon Web Services
2013 - Matías Paterlini: Escalando PHP con sharding y Amazon Web Services
 
Escalando una PHP App con DB sharding - PHP Conference
Escalando una PHP App con DB sharding - PHP ConferenceEscalando una PHP App con DB sharding - PHP Conference
Escalando una PHP App con DB sharding - PHP Conference
 
Codeworks'12 Rock Solid Deployment of PHP Apps
Codeworks'12 Rock Solid Deployment of PHP AppsCodeworks'12 Rock Solid Deployment of PHP Apps
Codeworks'12 Rock Solid Deployment of PHP Apps
 
Project management from a Developer's Perspective
Project management from a Developer's PerspectiveProject management from a Developer's Perspective
Project management from a Developer's Perspective
 
Specking Interactors with PHPSpec and YOLO (DDD) at PHPConference Argentina 2013
Specking Interactors with PHPSpec and YOLO (DDD) at PHPConference Argentina 2013Specking Interactors with PHPSpec and YOLO (DDD) at PHPConference Argentina 2013
Specking Interactors with PHPSpec and YOLO (DDD) at PHPConference Argentina 2013
 
Puppet Camp Berlin 2014: Advanced Puppet Design
Puppet Camp Berlin 2014: Advanced Puppet DesignPuppet Camp Berlin 2014: Advanced Puppet Design
Puppet Camp Berlin 2014: Advanced Puppet Design
 

Recently uploaded

Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
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
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 

Recently uploaded (20)

Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
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?
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 

Avoiding API Waterfalls

  • 1. AVOIDING WATERFALLS Jakub Nesetril founder & CEO of Apiary Tuesday, December 4, 12
  • 2. apiary.io GitHub for APIs Tuesday, December 4, 12
  • 3. WHY WE DO THINGS • documentation and tooling, not architecture • man-years of API infrastructure work • companies & teams re-inventing the wheel Tuesday, December 4, 12
  • 6. WE START WITH WHITEBOARD Tuesday, December 4, 12
  • 7. THEN CODE THE DESIGN Tuesday, December 4, 12
  • 8. OFFER IT TO CUSTOMERS Tuesday, December 4, 12
  • 9. AND ALL FAILS, BADLY Tuesday, December 4, 12
  • 10. WHERE DID WE GO WRONG? Tuesday, December 4, 12
  • 12. API DESIGN REIMAGINED HOW CAN WE GO AGILE? Tuesday, December 4, 12
  • 13. MAKE A DESIGN FIRST Tuesday, December 4, 12
  • 14. BUT WRITE IT DOWN FOR ALL TO USE HOST: http://api.twitter.com/ --- Twitter API 3.0 --- --- Welcome to our API. Comments support Markdown syntax --- -- Retrieve Tweets -- GET /tweets > Accept: application/json < 200 < Content-Type: application/json { "items": [ { "url": "/feed", "range":"2ZY48XPZ", "quantity": 1, "name": "New socks", "price": 1.25 } ] } Tuesday, December 4, 12
  • 15. OFFER A MOCK SERVER Tuesday, December 4, 12
  • 17. CODE WITH SPEC TESTS Tuesday, December 4, 12
  • 18. Mock > Use > Implement apiary.io Tuesday, December 4, 12
  • 20. #2: DOCUMENTATION • how do I make an HTTP call? • try to follow documentation but API behaves differently • is it invalid? is it outdated? am I doing it wrong? Tuesday, December 4, 12
  • 21. DOCUMENTATION REIMAGINED Tuesday, December 4, 12
  • 22. DOCUMENTATION • includes runnable code examples (NOT API console) • is backed up by automated tests (never out of date) Tuesday, December 4, 12
  • 25. #3: SUPPORT • my API calls are failing, no idea why • contacting customer support (that caters to shoe customers) • bumping my head against first-tier support for days until I get connected to developers • by that time, debug information is lost, logs are rotated, new product version is deployed… Tuesday, December 4, 12
  • 26. SUPPORT REIMAGINED Tuesday, December 4, 12
  • 27. SUPPORT • includes self-service debugger • API support requests routed directly to devs with debugging information included Tuesday, December 4, 12
  • 29. Mock > Use > Implement Automated Documentation Testing apiary.io Tuesday, December 4, 12
  • 30. COME HELP US http://github.com/apiaryio http://support.apiary.io/ Tuesday, December 4, 12
  • 31. Q&A E-MAIL jakub@apiary.io TWITTER @apiaryio Tuesday, December 4, 12
  • 32. PHOTO CREDITS http://www.flickr.com/photos/ironrodart/4308675209/sizes/o/ http://www.flickr.com/photos/schlosi/6153707178/sizes/l/ http://www.flickr.com/photos/72153088@N08/6510934443/sizes/l/ http://www.flickr.com/photos/psd/3470234703/sizes/l/ http://www.flickr.com/photos/code_martial/2501920341/sizes/l/ http://www.flickr.com/photos/weesen/3589267112/sizes/l/ http://www.flickr.com/photos/weesen/3588454913/sizes/l/ http://www.flickr.com/photos/weesen/3589258380/sizes/l/ http://www.flickr.com/photos/polishsausagequeen/2178265710/ http://www.flickr.com/photos/stupidmommy/2649444581/sizes/z/ Tuesday, December 4, 12