Api management from the Trenches

Preview:

Citation preview

@coldfumonkehMatt Gifford

API Management from the Trenches

CONSUMER DEBUGGING

AUTHOR DEBUGGING

CONSIDERATIONS

CONSUMER DEBUGGING

SELECTION

DISCOVERY

MICRO SERVICES

“Great things are done by a series of small things brought together.”

- Vincent Van Gogh

ABSTRACTION

VERSION MONITORING

NETWORK

CONNECTION

http://bit.ly/1uIZrYV

AUTHENTICATION

USE A LIBRARY

TEST IN ISOLATION

http://bit.ly/1byFK1R

DIRECT API CALLS

SPEED

SCOPE

FIREFOX REST CLIENT PLUGIN

work on these

cURL

curl -i -X PUT httpbin.org/put -H Content-Type:application/json -d ‘{“hello”: “world”}’

github.com/jakubroztocil/httpie

http PUT httpbin.org/put hello=world

HTTPie

POSTMAN (v1)

POSTMAN (v2)

PAYLOAD

MOCK API

SCHEMA

CHANGE

RATE LIMITS

EFFICIENCY

mockable.io

apiary.io

mocky.io

Fake APIFAKE API

OFFLINE

SECURITY

DYNAMIC

https://github.com/webpro/dyson

https://github.com/typicode/json-server

https://github.com/basicallydan/interfake

npm install interfake --save

var Interfake = require('interfake');var interfake = new Interfake();interfake.get('/whats-next').body({ next : 'more stuff '});interfake.listen(3000); // The server will listen on port 3000

{ "next":"more stuff"}

http://localhost:3000/whats-next

PROXY

SNOOPING

REPLAY

TUNNEL

charlesproxy.com/

httpkit.com/wiretap

runscope.com/docs/inspector

ngrok.com

CACHE MANAGEMENT

AUTHOR DEBUGGING

LOGGING

AUDIT TRAIL

FIND ISSUES

ANALYSIS

CLOUD LOGGING

www.sumologic.com

logstash.net

www.loggly.com

ERROR REPORTING

EXCEPTIONS

bugsnag.com

airbrake.io

getsentry.com

MONITORING

zapier.com/status

apimetrics.io

runscope.com/radar

ducksboard.com

LOAD TESTING

github.com/JoeDog/siege

loader.io

github.com/wg/wrk

wrk -t12 -c400 -d30s http://127.0.0.1:8080/index.html

Running 30s test @ http://127.0.0.1:8080/index.html 12 threads and 400 connections Thread Stats Avg Stdev Max +/- Stdev Latency 635.91us 0.89ms 12.92ms 93.69% Req/Sec 56.20k 8.07k 62.00k 86.54% 22464657 requests in 30.00s, 17.76GB read Requests/sec: 748868.53 Transfer/sec: 606.33MB

CONSIDERATIONS

DOCUMENTATION

API DESIGN

apiblueprint.org

raml.org

swagger.io

bit.ly/designApi

SDKs

SPEAK TO A HUMAN

@kinlane@johnsheehan

@synedra

THANK YOU

Recommended