SlideShare a Scribd company logo
BUILDING YOUR
API UTILITY BELT
D. KEITH CASEY, JR	 	 	 	 	 	 	 	 	 AUSTIN, TX
KEITH@CLARIFY.IO	 	 	 	 	 	 	 	 	 @CASEYSOFTWARE
Building your API utility belt (Keith Casey)
The API for Audio & Video Data
http://TheAPIDesignBook.com
ASSUMPTIONS
!
THE PROBLEMS
THE STATUS QUO
THE RIGHT TOOLS
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.
ASSUMPTIONS
Assumption:
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
Assumption:
Nothing is perfect

You make mistakes

Your providers make mistakes

That other team are knuckleheads
Assumption:
You acknowledge the real Batman

Ben Affleck

Christian Bale

George Clooney

Val Kilmer

Michael Keaton
Assumption:
You acknowledge the real Batman

Ben Affleck

Christian Bale

George Clooney

Val Kilmer

Michael Keaton
Assumption:
You acknowledge the real Batman

Ben Affleck

Christian Bale

George Clooney

Val Kilmer

Michael Keaton
TOOL 1: CURL
curl / libcurl
Completely open source with tons of integrations

Incredible power and flexibility

Incredible complexitiy
Common curl Parameters
-X specify an HTTP verb

-d specify data fields, such as for a POST

-I return/display all the included headers

-H add extra/custom headers
Getting Started
curl https://api.github.com

curl -I https://api.github.com

curl http://api.github.com/user/repos

curl -u caseysoftware -X POST 

	 https://api.github.com/user/repos -d ‘{“name”:”monkey”}’
Full docs (35 pages!)
http://curl.haxx.se/docs/manual.html
TOOL 2:
POSTMAN
Background
Started September 2013, raised $1MM May 2015

Over 1.5M users, 800k are active

Chrome Plugin - free, but has paid extensions
Common Commands
(there really aren’t any - point & click!)
Getting Started
curl https://api.github.com

curl -I https://api.github.com

curl http://api.github.com/user/repos

curl -u caseysoftware -X POST 

	 https://api.github.com/user/repos -d ‘{“name”:”monkey”}’
The Real Power
Full docs
https://www.getpostman.com/docs
TOOL 3: BDD IRL
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

Catch my talk “Is your API Misbehaving”
Our Syntax
It’s English, but in the Gherkin syntax so this:

As a [role] I want [feature] so that [benefit]

becomes a feature called:

Given [condition] when I [action] then [result]
An example
TOOL 4: FIDDLER
Background
Created by Telerik, based on .Net (Mono)

Serves as a local proxy, not a tool for requests, etc

Free to use; some paid, some free extensions

Geoedge - route traffic through 130 locations
Common Functionality
Active Man In The Middle (MITM)

Logging and Recording

Traffic & Payload Analysis

Manipulation

Your logs are kept locally
Building your API utility belt (Keith Casey)
Building your API utility belt (Keith Casey)
Full docs
http://docs.telerik.com/fiddler 

http://www.telerik.com/fiddler/add-ons
TOOL 5: APITOOLS
Background
Powered by 3Scale

Serves as a proxy, not a tool for requests

Web-based, only good for public APIs

Local Debian (or Vagrant or Docker) - OSS
Common Functionality
Active MITM FTW!

Logging and Recording

Traffic & Payload Analysis

Manipulation

Your logs are kept:

In the cloud or locally, your choice!
In Action
https://www.apitools.com/slugs
Full docs
https://docs.apitools.com/docs/

But seriously.. it’s really only 2 steps.
TOOL 6: STOPLIGHT.IO
Background
Started Dec 2014, still Beta but interesting

Serves as: a proxy and documentation generator

Web-based, primarily for public APIs

Using ngrok, you can share localhost
Common Functionality
Active MITM FTW!

Logging and Recording

Traffic & Payload Analysis

Generates Documentation

Heavy focus on collaboration & sharing
In Action
https://dash.stoplight.io/apps
Full docs
???
TOOL 7: RUNSCOPE
Background
Started Dec 2012, well-funded by a16z and others

Serves as: a proxy, performance monitoring, unit
test, usage tracking, API monitoring

Web-based, primarily for public APIs

Using Passageway, you can share localhost
Common Functionality
Active MITM FTW!

Logging and Recording

Traffic & Payload Analysis

Your logs are kept in the cloud

Incredibly easy to share requests & callbacks
In Action
https://www.runscope.com/
Full docs
https://www.runscope.com/docs
ASSUMPTIONS
!
THE PROBLEMS
THE STATUS QUO
THE RIGHT TOOLS
Building your API utility belt (Keith Casey)
Building your API utility belt (Keith Casey)
BUILDING YOUR
API UTILITY BELT
D. KEITH CASEY, JR	 	 	 	 	 	 	 	 	 AUSTIN, TX
KEITH@CLARIFY.IO	 	 	 	 	 	 	 	 	 @CASEYSOFTWARE
http://TheAPIDesignBook.com

More Related Content

PDF
Asynchronous WordPress
PDF
Asynchronous WordPress
PDF
Powering Content Driven Applications with the World’s Most Popular CMS #ngconf
PPTX
Hateoas APIs are about relationships
PPT
Building your first Native iOs App with an API Backend
PDF
Web APIs - Best practices
PDF
Introduction to Social APIs
PDF
Git and Unity
Asynchronous WordPress
Asynchronous WordPress
Powering Content Driven Applications with the World’s Most Popular CMS #ngconf
Hateoas APIs are about relationships
Building your first Native iOs App with an API Backend
Web APIs - Best practices
Introduction to Social APIs
Git and Unity

What's hot (20)

PDF
Boot It Up
PDF
Enemy of the state
PDF
PDF
Tracking large game assets with Git LFS
PDF
Tracking huge files with Git LFS - LinuxCon 2016
PDF
SoundCloud API Do:s and Don't:s
KEY
How To Write a WordPress Plugin
PDF
React For Vikings
PDF
Instagram like-samo-11-2
PDF
"Managing API Complexity". Matthew Flaming, Temboo
PPT
Mashups & APIs
PPTX
BrightonSEO 2020 - Mastering The API and Having Fun Along The Way
PDF
SoundCloud API Learnings
PDF
APIs That Make Things Happen
PDF
SoundCloud Platform Do:s and Don't:s at How To Web 2011
PPTX
2018-07-23 blogdown for what
PDF
Using ArcGIS Server with Ruby on Rails
PDF
WordPress RESTful API & Amazon API Gateway (English version)
PDF
RESTful API を Chalice で紐解く 〜 Python Serverless Microframework for AWS 〜
PPT
Mashup Y! widget
Boot It Up
Enemy of the state
Tracking large game assets with Git LFS
Tracking huge files with Git LFS - LinuxCon 2016
SoundCloud API Do:s and Don't:s
How To Write a WordPress Plugin
React For Vikings
Instagram like-samo-11-2
"Managing API Complexity". Matthew Flaming, Temboo
Mashups & APIs
BrightonSEO 2020 - Mastering The API and Having Fun Along The Way
SoundCloud API Learnings
APIs That Make Things Happen
SoundCloud Platform Do:s and Don't:s at How To Web 2011
2018-07-23 blogdown for what
Using ArcGIS Server with Ruby on Rails
WordPress RESTful API & Amazon API Gateway (English version)
RESTful API を Chalice で紐解く 〜 Python Serverless Microframework for AWS 〜
Mashup Y! widget
Ad

Similar to Building your API utility belt (Keith Casey) (20)

PDF
Apigility – Lightning Fast API Development - OSSCamp 2014
PDF
[drupalday2017] - REST in pieces
PDF
REST in pieces
PPTX
Intro to Strapi 4
PDF
Don't screw it up! How to build durable API
PDF
Open event (show&tell april 2016)
PDF
Using hapi plugins to version your API (hapiDays 2014)
KEY
iPhone App from concept to product
PPTX
API Documentation Workshop tcworld India 2015
PDF
Introduction To Open Web Protocols
PDF
WebHooks in 10 Minutes
PDF
Yahoo is open to developers
PPTX
How to build virtual assistant like Jarvis (in Ironman) with Google Assistant...
PDF
Distributing UI Libraries: in a post Web-Component world
PPT
Opensocial Haifa Seminar - 2008.04.08
PDF
DevSecCon Singapore 2018 - in graph we trust By Imran Mohammed
PDF
In graph we trust: Microservices, GraphQL and security challenges
PDF
0764-kali-linux.pdf
PPTX
Survival Strategies for API Documentation: Presentation to Southwestern Ontar...
PDF
Goodle Developer Days Munich 2008 - Open Social Update
Apigility – Lightning Fast API Development - OSSCamp 2014
[drupalday2017] - REST in pieces
REST in pieces
Intro to Strapi 4
Don't screw it up! How to build durable API
Open event (show&tell april 2016)
Using hapi plugins to version your API (hapiDays 2014)
iPhone App from concept to product
API Documentation Workshop tcworld India 2015
Introduction To Open Web Protocols
WebHooks in 10 Minutes
Yahoo is open to developers
How to build virtual assistant like Jarvis (in Ironman) with Google Assistant...
Distributing UI Libraries: in a post Web-Component world
Opensocial Haifa Seminar - 2008.04.08
DevSecCon Singapore 2018 - in graph we trust By Imran Mohammed
In graph we trust: Microservices, GraphQL and security challenges
0764-kali-linux.pdf
Survival Strategies for API Documentation: Presentation to Southwestern Ontar...
Goodle Developer Days Munich 2008 - Open Social Update
Ad

More from Future Insights (20)

PDF
The Human Body in the IoT. Tim Cannon + Ryan O'Shea
PDF
Pretty pictures - Brandon Satrom
PDF
Putting real time into practice - Saul Diez-Guerra
PDF
Surviving the enterprise storm - @RianVDM
PDF
Exploring Open Date with BigQuery: Jenny Tong
PDF
A Universal Theory of Everything, Christopher Murphy
PDF
Horizon Interactive Awards, Mike Sauce & Jeff Jahn
PDF
Reading Your Users’ Minds: Empiricism, Design, and Human Behavior, Shane F. B...
PDF
Front End Development Transformation at Scale, Damon Deaner
PDF
Structuring Data from Unstructured Things. Sean Lorenz
PDF
Cinematic UX, Brad Weaver
PDF
The Future is Modular, Jonathan Snook
PDF
Designing an Enterprise CSS Framework is Hard, Stephanie Rewis
PDF
Accessibility Is More Than What Lies In The Code, Jennison Asuncion
PDF
Sunny with a Chance of Innovation: A How-To for Product Managers and Designer...
PDF
Designing for Dyslexia, Andrew Zusman
PDF
Beyond Measure, Erika Hall
PDF
Real Artists Ship, Haraldur Thorleifsson
PDF
Ok Computer. Peter Gasston
PDF
Digital Manuscripts Toolkit, using IIIF and JavaScript. Monica Messaggi Kaya
The Human Body in the IoT. Tim Cannon + Ryan O'Shea
Pretty pictures - Brandon Satrom
Putting real time into practice - Saul Diez-Guerra
Surviving the enterprise storm - @RianVDM
Exploring Open Date with BigQuery: Jenny Tong
A Universal Theory of Everything, Christopher Murphy
Horizon Interactive Awards, Mike Sauce & Jeff Jahn
Reading Your Users’ Minds: Empiricism, Design, and Human Behavior, Shane F. B...
Front End Development Transformation at Scale, Damon Deaner
Structuring Data from Unstructured Things. Sean Lorenz
Cinematic UX, Brad Weaver
The Future is Modular, Jonathan Snook
Designing an Enterprise CSS Framework is Hard, Stephanie Rewis
Accessibility Is More Than What Lies In The Code, Jennison Asuncion
Sunny with a Chance of Innovation: A How-To for Product Managers and Designer...
Designing for Dyslexia, Andrew Zusman
Beyond Measure, Erika Hall
Real Artists Ship, Haraldur Thorleifsson
Ok Computer. Peter Gasston
Digital Manuscripts Toolkit, using IIIF and JavaScript. Monica Messaggi Kaya

Recently uploaded (20)

PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Modernizing your data center with Dell and AMD
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
Empathic Computing: Creating Shared Understanding
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
cuic standard and advanced reporting.pdf
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
Cloud computing and distributed systems.
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
KodekX | Application Modernization Development
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Unlocking AI with Model Context Protocol (MCP)
Building Integrated photovoltaic BIPV_UPV.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
Modernizing your data center with Dell and AMD
Spectral efficient network and resource selection model in 5G networks
Advanced methodologies resolving dimensionality complications for autism neur...
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Empathic Computing: Creating Shared Understanding
Encapsulation_ Review paper, used for researhc scholars
cuic standard and advanced reporting.pdf
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Cloud computing and distributed systems.
The Rise and Fall of 3GPP – Time for a Sabbatical?
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
KodekX | Application Modernization Development
The AUB Centre for AI in Media Proposal.docx
NewMind AI Weekly Chronicles - August'25 Week I
“AI and Expert System Decision Support & Business Intelligence Systems”
MYSQL Presentation for SQL database connectivity
Unlocking AI with Model Context Protocol (MCP)

Building your API utility belt (Keith Casey)