Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Building your API Utility Belt

Building your API Utility Belt

No matter the situation, Batman always had the perfect tool on hand. It didn't matter how rare, bizarre, or unique the situation was, he was ready to save the day. Unfortunately, in software development, we don't have a utility belt. At best, our tools are scripts we've cobbled together over the years that solve particular problems but leave us stuck more often than not. In this talk, we'll work to change that. This talk will introduce you to seven tools that are vital to everyday API usage and development.

Keith Casey

June 03, 2015
Tweet

More Decks by Keith Casey

Other Decks in Technology

Transcript

  1. Disclaimer Some of the tools and services covered here are

    open source, some are commercial products, and some are a blend of both. I have no vested interest in any of them though I know people at all of the companies involved. * Also, all pictures used without permission or attribution.
  2. Assumptions You have a technical background APIs are an important

    part of your job Use them on a regular basis Potentially build them too Sometimes public, sometimes private
  3. Common Commands -X specify an HTTP verb -d specify data

    fields, such as for a POST -I return/display all the returned headers -H specify extra/custom headers
  4. Getting Started curl https://api.github.com curl -I https://api.github.com curl https://api.github.com/user/repos curl

    -u caseysoftware -X POST https:// api.github.com/user/repos -d ‘{“name”:”monkey”}’
  5. Background Started in Sept 2013, raised $1MM May 2015 Over

    3M users (as of June 2016) Free but with some paid extensions
  6. Background Different from Unit Testing in that we step outside

    the system and take the users’ point of view Tools in just about every language: Cucumber, Behave, Behat, etc Uses the Gherkin syntax
  7. Our Syntax It’s English, but in the Gherkin syntax so

    this: As a [role] I want [feature] so that [benefit] becomes a feature structured as: Given [condition] when I [action] then [result]
  8. Background Created by Telerik, based on .NET (Mono) Serves as

    a local proxy, not a tool for requests Free to use; some paid, some free extensions Geoedge - route traffic through 130 locations
  9. Common Functionality Active Man in the Middle (MITM) Logging and

    Recording Traffic & Payload Analysis Manipulation/Modification Your logs kept locally
  10. Background Powered by 3Scale (acquired by Redhat recently) Serves as

    a proxy, not a tool for requests Web-based, only good for public APIs OSS - local via RPM (or Vagrant or Docker)
  11. Common Functionality Active Man in the Middle (MITM) Logging and

    Recording Traffic & Payload Analysis Manipulation/Modification Your logs kept locally (or in the cloud!)
  12. Background Started Dec 2014, still Beta but interesting Serves as:

    a proxy & documentation generator Web-based, primarily for public APIs Using ngrok, you can share localhost
  13. Common Functionality Active Man in the Middle (MITM) Logging and

    Recording Traffic & Payload Analysis Generates Documentation Heavy focus on collaboration & sharing
  14. Background Started in Dec 2012, funded by a16z and others

    Serves as a proxy, performance monitoring, usage tracking, unit testing, monitoring, etc Web-based, primarily for public APIs Using ngrok, you can share localhost
  15. Common Functionality Active Man in the Middle (MITM) Logging and

    Recording Traffic & Payload Analysis Your logs are kept in the cloud Incredibly easy to share requests & callbacks
  16. To compare… Active MITM? Logs? Collaboration? Docs Generation? Testing &

    Validation? Fiddler yes local no no no API Tools yes internal share results no yes Stoplight.io yes local for definitions yes no Runscope yes cloud share results no yes