Slide 1

Slide 1 text

Shodipo Ayomide (@developerayo) | Full Stack Developers Conference)

Slide 2

Slide 2 text

Hello! 2

Slide 3

Slide 3 text

What is GraphQL 3

Slide 4

Slide 4 text

4 GraphQL is a syntax that describes how to ask for data, and is generally used to load data from a server to a client. In other words

Slide 5

Slide 5 text

5 GraphQL is a query language for your API

Slide 6

Slide 6 text

6

Slide 7

Slide 7 text

7 JavaScript Typescript Ruby PHP Python Java C/C++ Perl .NET Erlang Elixar Haskel Rust Lua Scala Clojure ClojureScript Swift OCaml SQL R Elm GraphQL supports a whole lot of languages and frameworks

Slide 8

Slide 8 text

8 GraphQL supports a whole lot of languages and frameworks Kotlin GO Crystal

Slide 9

Slide 9 text

Companies using GraphQL 9 http://blog.honeypot.io/assets/images/ql-companies.png

Slide 10

Slide 10 text

Let that sink in! 10 REST APIs returns resources you do not need, that’s why you have a bunch of endpoint’s you do not need

Slide 11

Slide 11 text

11

Slide 12

Slide 12 text

12 GraphQL To The Rescue

Slide 13

Slide 13 text

Ask for what you need, and get exactly that. NO EXTRAS 13 Send a GraphQL query to your API and get exactly what you need, nothing more and nothing less. Apps using GraphQL are fast and stable because they control the data they get, not the server.

Slide 14

Slide 14 text

14 { viewer { name email } } Example

Slide 15

Slide 15 text

15 { viewer { name email } } Example

Slide 16

Slide 16 text

16 { "data": { "viewer": { "name": "Shodipo Ayomide", "email": "johndoe@johndoe.com" } } } { viewer { name email } } POST: https://api.github.com/graphql

Slide 17

Slide 17 text

17 { user(login: "developerayo") { name location repositories { name } } } Example

Slide 18

Slide 18 text

18 { user(login: "developerayo") { name location repositories { name } } } POST: https://api.github.com/graphql { "data": { "user": { "name": “Shodipo Ayomide", "location": “Lagos, Nigeria", "repositories": [ { "name": “awesome-nuxtjs" }, { "name": “react-notify" }, { "name": “shodipoayomide.com" }, ... } } }

Slide 19

Slide 19 text

Versioning made easy 19 Add new fields and types to your GraphQL API without impacting existing queries “think GitHub PR”. encourage cleaner, more maintainable server code.

Slide 20

Slide 20 text

20 GET /GraphQL Request Body Response Body query { post(id: 1) { id title tagline votesCount commentsCount thumbnailUrl hunter: { id avatarUrl } } }

Slide 21

Slide 21 text

21 GET /GraphQL Request Body Response Body query { post(id: 1) { id title tagline votesCount commentsCount thumbnailUrl hunter: { id avatarUrl } } }

Slide 22

Slide 22 text

22 GET /GraphQL Request Body Response Body query { post(id: 1) { id title tagline votesCount commentsCount thumbnailUrl hunter: { id avatarUrl } } } { "data": { "post": { "id": 1, "title": "Developerayo’s Blog", "tagline": "Articles on Soft.", "votesCount": 490, "commentsCount": 7,648, "thumbnailUrl": "google.com/tbn" "hunter": { "id": 1, "avatarUrl": "google.com/tbn" } } } }

Slide 23

Slide 23 text

23 A little Workshop Open CodeSandBox

Slide 24

Slide 24 text

The Apollo GraphQL platform is an implementation of GraphQL that helps you manage data from the cloud to your UI. Got any questions about apollo? speak to @unicodeveloper https://www.apollographql.com

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

No content

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

There is no Limit to what you can build 28

Slide 29

Slide 29 text

GraphQL Tools 29

Slide 30

Slide 30 text

GraphQL CSS 30 graphql-css is a blazing fast CSS-in-GQL library that converts GraphQL queries into styles for your components https://github.com/braposo/graphql-css

Slide 31

Slide 31 text

GraphiQL 31 An interactive in-browser GraphQL IDE tool for GraphQL https://github.com/graphql/graphiql

Slide 32

Slide 32 text

Graphcool 32 Self-Hosted GraphQL BaaS (Backend as a Service) https://www.graph.cool/ a GraphQL backend for your applications with a powerful web ui for managing your database and stored data

Slide 33

Slide 33 text

READY TO LEARN GRAPHQL? 33

Slide 34

Slide 34 text

Resources 34 GraphQL: https://graphql.org Apollo graphql: https://apollographql.com GraphiQL: https://github.com/graphql/graphiql Let’s Learn GraphQL by Sara Vieira https://letslearngraphql.com/ How to GraphQL: https://howtographql.com GraphQL CSS https://github.com/braposo/graphql-css

Slide 35

Slide 35 text

35

Slide 36

Slide 36 text

Thanks! Any questions? You can find me @developerayo on Twitter, GitHub, Everywhere Read some blog post here https://shodipoayomide.com 36