Slide 1

Slide 1 text

WTF Are APIs?! Seriously, wtf are they? @rdegges @gostormpath

Slide 2

Slide 2 text

Hey, I’m Randall Developer Evangelist, Stormpath Open Source Dude <333 t3h c0d3z

Slide 3

Slide 3 text

Wanna talk about APIs? APIs are the best! I want an API!

Slide 4

Slide 4 text

What the hell are they?!

Slide 5

Slide 5 text

APIs are websites made for computers

Slide 6

Slide 6 text

Websites for humans are horrible.

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

Hi!

Hello, world!

HTML!!!!

Slide 10

Slide 10 text

body { padding: 2em; } h1 { font-size: 3em; color: #000; } CSS!!!!

Slide 11

Slide 11 text

$(document).ready(function() { $("

Hello, world!").insertAfter("h1"); }); Javascript :(

Slide 12

Slide 12 text

JUST DATA

Slide 13

Slide 13 text

$ curl https://api.ipify.org 73.15.98.183 $ curl http://swapi.co/api/people/1/

Slide 14

Slide 14 text

{ "username": "rdegges", "firstName": "Randall", "lastName": "Degges", "email": "[email protected]" } JSON

Slide 15

Slide 15 text

rdegges Randall Degges [email protected] XML

Slide 16

Slide 16 text

How do computers talk to an API?

Slide 17

Slide 17 text

HTTP Request Headers Body Metadata Data

Slide 18

Slide 18 text

HTTP Response Headers Body They look the same!

Slide 19

Slide 19 text

GET POST PUT PATCH DELETE

Slide 20

Slide 20 text

GET https://api.mywebsite.com/messages { "messages": [ { "id": 1, "text": "Hey Randall! Cool slide art!" }, { "id": 2, "text": "Great talk, too!" } ] }

Slide 21

Slide 21 text

POST https://api.mywebsite.com/messages { "text": "I’m storing a new message!" } { "id": 3, "text": "I’m storing a new message!" }

Slide 22

Slide 22 text

PUT https://api.mywebsite.com/messages/1 { "id": 1, "text": "Hey Randall! BAD slide art!" } { "id": 1, "text": "Hey Randall! BAD slide art!" }

Slide 23

Slide 23 text

PATCH https://api.mywebsite.com/messages/1 { "text": "Hey Randall! Booorrring." } { "id": 1, "text": "Hey Randall! Booorrring." }

Slide 24

Slide 24 text

DELETE https://api.mywebsite.com/messages/1 { "id": 1, "text": "Hey Randall! Booorrring." }

Slide 25

Slide 25 text

APIs are pretty cool, after all!

Slide 26

Slide 26 text

https://www.publicapis.com/

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

POST https://api.twilio.com/2010-04-01/Accounts//Calls.json { "From": "+14158675309", "To": "+18182179229", "Url": "https://mywebsite.com/call.xml" }

Slide 29

Slide 29 text

POST https://api.twilio.com/2010-04-01/Accounts//Messages.json { "From": "+14158675309", "To": "+18182179229", "Body": "Hey Randall!!" }

Slide 30

Slide 30 text

You mean I can use an API to ship stuff?! Cool!

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

My website is now very secure! Hahaha.

Slide 33

Slide 33 text

No content

Slide 34

Slide 34 text

APIs Are Magical!

Slide 35

Slide 35 text

You’re awesome. @rdegges @gostormpath