Slide 1

Slide 1 text

Who is that GraphQL all my friends are talking about? #developercircles #devc @FerPeralesM GraphQL 101

Slide 2

Slide 2 text

#developercircles #devc @FerPeralesM

Slide 3

Slide 3 text

Software Engineer Senior Software Engineer @ michelada.io FLOSS advocate Heavy Metal and Beer lover Host the RubyGDL community Co-founder @ Railsbridge México In Gregory Sallust I trust #developercircles #devc @FerPeralesM

Slide 4

Slide 4 text

#developercircles #devc @FerPeralesM

Slide 5

Slide 5 text

What is GraphQL? #developercircles #devc @FerPeralesM

Slide 6

Slide 6 text

 2012 #developercircles #devc @FerPeralesM

Slide 7

Slide 7 text

REST #developercircles #devc @FerPeralesM

Slide 8

Slide 8 text

Spotify #developercircles #devc @FerPeralesM

Slide 9

Slide 9 text

Goal: get the name of all the tracks from a playlist called “Starred” created by an specific user #developercircles #devc @FerPeralesM

Slide 10

Slide 10 text

#developercircles #devc @FerPeralesM

Slide 11

Slide 11 text

#developercircles #devc @FerPeralesM

Slide 12

Slide 12 text

#developercircles #devc @FerPeralesM

Slide 13

Slide 13 text

#developercircles #devc @FerPeralesM

Slide 14

Slide 14 text

#developercircles #devc @FerPeralesM

Slide 15

Slide 15 text

#developercircles #devc @FerPeralesM

Slide 16

Slide 16 text

#developercircles #devc @FerPeralesM

Slide 17

Slide 17 text

#developercircles #devc @FerPeralesM

Slide 18

Slide 18 text

#developercircles #devc @FerPeralesM

Slide 19

Slide 19 text

#developercircles #devc @FerPeralesM

Slide 20

Slide 20 text

#developercircles #devc @FerPeralesM

Slide 21

Slide 21 text

#developercircles #devc @FerPeralesM

Slide 22

Slide 22 text

#developercircles #devc @FerPeralesM

Slide 23

Slide 23 text

#developercircles #devc @FerPeralesM

Slide 24

Slide 24 text

Success! #developercircles #devc @FerPeralesM

Slide 25

Slide 25 text

We only needed #developercircles #devc @FerPeralesM

Slide 26

Slide 26 text

3 HTTP calls #developercircles #devc @FerPeralesM

Slide 27

Slide 27 text

Do an intensive operation in our backend (searching for the playlist with the “Starred” name) #developercircles #devc @FerPeralesM

Slide 28

Slide 28 text

And getting three big payloads with unnecessary data* *for our needs #developercircles #devc @FerPeralesM

Slide 29

Slide 29 text

#developercircles #devc @FerPeralesM

Slide 30

Slide 30 text

GraphQL is, as the name might suggest, a query language #developercircles #devc @FerPeralesM

Slide 31

Slide 31 text

Advantages #developercircles #devc @FerPeralesM

Slide 32

Slide 32 text

Get exactly what you want #developercircles #devc @FerPeralesM

Slide 33

Slide 33 text

#developercircles #devc @FerPeralesM

Slide 34

Slide 34 text

Nesting #developercircles #devc @FerPeralesM

Slide 35

Slide 35 text

#developercircles #devc @FerPeralesM

Slide 36

Slide 36 text

#developercircles #devc @FerPeralesM

Slide 37

Slide 37 text

Strongly typed #developercircles #devc @FerPeralesM

Slide 38

Slide 38 text

Introspective #developercircles #devc @FerPeralesM

Slide 39

Slide 39 text

#developercircles #devc @FerPeralesM

Slide 40

Slide 40 text

No versioning #developercircles #devc @FerPeralesM

Slide 41

Slide 41 text

Demo #developercircles #devc @FerPeralesM

Slide 42

Slide 42 text

FerPerales/graphql_demo  #developercircles #devc @FerPeralesM

Slide 43

Slide 43 text

ferperales/graphql-101-devc #developercircles #devc @FerPeralesM

Slide 44

Slide 44 text

Sources https://medium.freecodecamp.com/so-whats-this-graphql-thing-i-keep-hearing-about-baf4d36c20cf http://blog.codeship.com/an-introduction-to-graphql-via-the-github-api http://facebook.github.io/graphql/ http://thenewstack.io/graphql-data-query-language-resource-guide http://medium.freecodecamp.com/give-it-a-rest-use-graphql-for-your-apis-40a2761e6336 http://dev.to/reactiveconf/why-i-believe-graphql-will-come-to-replace-rest #developercircles #devc @FerPeralesM

Slide 45

Slide 45 text

Thanks! #developercircles #devc @FerPeralesM