Slide 1

Slide 1 text

API Driven Development with Goliath Eric Marden @xentek

Slide 2

Slide 2 text

Hello, World { name: “Eric Marden”, twitter: “@xentek”, blog: “xentek.net”, self_link: “ericmarden.com” } 200 OK

Slide 3

Slide 3 text

Hypermedia APIs REST vs Hypermedia Discoverable Cacheable Linkable HATEOAS API Driven Development

Slide 4

Slide 4 text

Goliath what is it? how can I use it to build awesome hypermedia apis? how does it compare to...? tips, tricks, and gotchas

Slide 5

Slide 5 text

Goliath what is it?

Slide 6

Slide 6 text

Goliath asynchronous low level rack-based built on event machine (reactor pattern) ruby fibers native http parser

Slide 7

Slide 7 text

Goliath features

Slide 8

Slide 8 text

Goliath easy to learn easy to test rich middleware stack fast

Slide 9

Slide 9 text

Goliath request cycle

Slide 10

Slide 10 text

Goliath

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

Goliath

Slide 13

Slide 13 text

Goliath route map

Slide 14

Slide 14 text

Goliath

Slide 15

Slide 15 text

Goliath middleware

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

Goliath endpoint

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

Goliath how does it compare to…?

Slide 20

Slide 20 text

Goliath rails versus

Slide 21

Slide 21 text

Goliath sinatra versus

Slide 22

Slide 22 text

Goliath tips, tricks, and gotchas

Slide 23

Slide 23 text

Goliath models, modules, and objects OH MY

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

Goliath configuration

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

Goliath headers

Slide 29

Slide 29 text

Goliath

Slide 30

Slide 30 text

Goliath status codes

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

Goliath validation

Slide 33

Slide 33 text

Goliath Goliath::Rack::Validation::RequiredParam Goliath::Rack::Validation::RequiredValue Goliath::Rack::Validation::RequestMethod ...and many more

Slide 34

Slide 34 text

Goliath error handling

Slide 35

Slide 35 text

No content

Slide 36

Slide 36 text

Goliath blocking the reactor

Slide 37

Slide 37 text

Goliath testing

Slide 38

Slide 38 text

No content

Slide 39

Slide 39 text

KTHXBYE { name: “Eric Marden”, twitter: “@xentek”, blog: “xentek.net”, self_link: “ericmarden.com” } 410 GONE

Slide 40

Slide 40 text

Further Reading http://goliath.io http://designinghypermediaapis.com/ http://j.mp/rest-fielding-dissertation http://j.mp/api-only-apps-with-rails https://gimmebar.com/loves/xentek/tag/hypermedia http://httpstatus.es/