SlideShare a Scribd company logo
Introduction
Origin
History
Usage
Alternatives & useful tools
End
GraphQL
Piotr Sroczkowski
Brainhub
January 23, 2017
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
Summary I
1 Introduction
2 Origin
DIP
Semantic triple
3 History
4 Usage
How to setup a GraphQL server?
Syntax
Types
Best practices
5 Alternatives & useful tools
6 End
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
What is GraphQL?
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
What is GraphQL?
Graph query language
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
DIP
Semantic triple
Dependency inversion principle (DIP)
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
DIP
Semantic triple
Dependency inversion principle (DIP)
one of SOLID principles
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
DIP
Semantic triple
Dependency inversion principle (DIP)
one of SOLID principles
depend on abstraction, not concretion
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
DIP
Semantic triple
Dependency inversion principle (DIP)
one of SOLID principles
depend on abstraction, not concretion
IMO even abstract class breaks this rule
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
DIP
Semantic triple
Dependency inversion principle (DIP)
one of SOLID principles
depend on abstraction, not concretion
IMO even abstract class breaks this rule
so we should depend only on interfaces
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
DIP
Semantic triple
DIP in services
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
DIP
Semantic triple
DIP in services
DIP is not only in OOP
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
DIP
Semantic triple
DIP in services
DIP is not only in OOP
also in SOA
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
DIP
Semantic triple
DIP in services
DIP is not only in OOP
also in SOA
it’s like joining blocks together
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
DIP
Semantic triple
DIP in microservices
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
DIP
Semantic triple
DIP in microservices
it’s not a new paradigm, it’s just an example of SOA
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
DIP
Semantic triple
DIP in microservices
it’s not a new paradigm, it’s just an example of SOA
service discovery
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
DIP
Semantic triple
Semantic triple
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
DIP
Semantic triple
Semantic triple
an RDF (Resouce Description Framework) data model
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
DIP
Semantic triple
Semantic triple
an RDF (Resouce Description Framework) data model
ex. Alice likes Bob
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
DIP
Semantic triple
Triplestore
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
DIP
Semantic triple
Triplestore
a proposed database for storage of triples
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
DIP
Semantic triple
Think in graphs
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
DIP
Semantic triple
Think in graphs
Why?
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
DIP
Semantic triple
Think in graphs
Why?
UI
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
DIP
Semantic triple
Think in graphs
Why?
UI
Graph algorithms
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
GraphQL history
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
GraphQL history
developed internally in Facebook in 2012
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
GraphQL history
developed internally in Facebook in 2012
publicly released in 2015
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Node
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Node
express-graphql
https://github.com/graphql/express-graphql
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Node
express-graphql
https://github.com/graphql/express-graphql
or graphql-server
https://github.com/apollostack/graphql-server
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
The simplest way
1 git clone https:// github.com/apollostack/apollo -
→ starter -kit
2 cd apollo -starter -kit
3 git checkout server -only
4 npm install
5 npm start
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Queries
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Queries
1 {
2 hero {
3 name
4 }
5 }
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Queries
1 {
2 hero {
3 name
4 }
5 }
1 {
2 "data": {
3 "hero": {
4 "name": "R2 -D2"
5 }
6 }
7 }
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Queries
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Queries
1 {
2 human(id: "1000") {
3 name
4 height
5 }
6 }
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Queries
1 {
2 human(id: "1000") {
3 name
4 height
5 }
6 }
1 {
2 "data": {
3 "human": {
4 "name": "Luke Skywalker",
5 "height": 1.72
6 }
7 }
8 }
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Aliases
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Aliases
1 {
2 empireHero: hero(episode: EMPIRE) {
3 name
4 }
5 jediHero: hero(episode: JEDI) {
6 name
7 }
8 }
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Aliases
1 {
2 empireHero: hero(episode: EMPIRE) {
3 name
4 }
5 jediHero: hero(episode: JEDI) {
6 name
7 }
8 }
1 {
2 "data": {
3 "empireHero": {
4 "name": "Luke Skywalker"
5 },
6 "jediHero": {
7 "name": "R2 -D2"
8 }
9 } Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Fragments - input
1 {
2 leftComparison: hero(episode: EMPIRE) {
3 ... comparisonFields
4 }
5 rightComparison : hero(episode: JEDI) {
6 ... comparisonFields
7 }
8 }
9
10 fragment comparisonFields on Character {
11 name
12 appearsIn
13 friends {
14 name
15 }
16 }
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Fragments - output I
1 {
2 "data": {
3 " leftComparison": {
4 "name": "Luke Skywalker",
5 "appearsIn": [
6 "NEWHOPE",
7 "EMPIRE",
8 "JEDI"
9 ],
10 "friends": [
11 {
12 "name": "Han Solo"
13 },
14 {
15 "name": "Leia Organa"
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Fragments - output II
16 },
17 {
18 "name": "C-3PO"
19 },
20 {
21 "name": "R2 -D2"
22 }
23 ]
24 },
25 " rightComparison ": {
26 "name": "R2 -D2",
27 "appearsIn": [
28 "NEWHOPE",
29 "EMPIRE",
30 "JEDI"
31 ],
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Fragments - output III
32 "friends": [
33 {
34 "name": "Luke Skywalker"
35 },
36 {
37 "name": "Han Solo"
38 },
39 {
40 "name": "Leia Organa"
41 }
42 ]
43 }
44 }
45 }
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Variables - input I
1 query HeroNameAndFriends ($episode: Episode) {
2 hero(episode: $episode) {
3 name
4 friends {
5 name
6 }
7 }
8 }
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Variables - output I
1 {
2 "data": {
3 "hero": {
4 "name": "R2 -D2",
5 "friends": [
6 {
7 "name": "Luke Skywalker"
8 },
9 {
10 "name": "Han Solo"
11 },
12 {
13 "name": "Leia Organa"
14 }
15 ]
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Variables - output II
16 }
17 }
18 }
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Directives I
1 query Hero($episode: Episode , $withFriends: Boolean !)
→ {
2 hero(episode: $episode) {
3 name
4 friends @include(if: $withFriends) {
5 name
6 }
7 }
8 }
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Mutations I
1 mutation CreateReviewForEpisode ($ep: Episode!, $review
→ : ReviewInput !) {
2 createReview(episode: $ep , review: $review) {
3 stars
4 commentary
5 }
6 }
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Inline fragments I
1 query HeroForEpisode ($ep: Episode !) {
2 hero(episode: $ep) {
3 name
4 ... on Droid {
5 primaryFunction
6 }
7 ... on Human {
8 height
9 }
10 }
11 }
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Meta fields I
1 {
2 search(text: "an") {
3 __typename
4 ... on Human {
5 name
6 }
7 ... on Droid {
8 name
9 }
10 ... on Starship {
11 name
12 }
13 }
14 }
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Types
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Types
Scalar types
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Types
Scalar types
Enumeration types
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Types
Scalar types
Enumeration types
Interfaces
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Types
Scalar types
Enumeration types
Interfaces
Union types
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Types
Scalar types
Enumeration types
Interfaces
Union types
Input types
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Scalar types
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Scalar types
Int
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Scalar types
Int
Float
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Scalar types
Int
Float
String
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Scalar types
Int
Float
String
Boolean
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Scalar types
Int
Float
String
Boolean
Id
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Scalar types
Int
Float
String
Boolean
Id
You can also define your custom scalar types ex. scalar Date
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Enumeration types
1 enum Episode {
2 NEWHOPE
3 EMPIRE
4 JEDI
5 }
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Type modifiers
1 type Character {
2 name: String!
3 appearsIn: [Episode ]!
4 }
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Interface
1 interface Character {
2 id: ID!
3 name: String!
4 friends: [Character]
5 appearsIn: [Episode ]!
6 }
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Interface implementation
1 type Human implements Character {
2 id: ID!
3 name: String!
4 friends: [Character]
5 appearsIn: [Episode ]!
6 starships: [Starship]
7 totalCredits: Int
8 }
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Union types
1 union SearchResult = Human | Droid | Starship
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Input types
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Input types
1 input ReviewInput {
2 stars: Int!
3 commentary: String
4 }
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Input types
1 input ReviewInput {
2 stars: Int!
3 commentary: String
4 }
1 mutation CreateReviewForEpisode ($ep: Episode!,
→ $review: ReviewInput !) {
2 createReview(episode: $ep , review: $review)
→ {
3 stars
4 commentary
5 }
6 }
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Best practices
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Best practices
HTTP
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Best practices
HTTP
JSON (with GZIP)
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Best practices
HTTP
JSON (with GZIP)
Versioning
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Best practices
HTTP
JSON (with GZIP)
Versioning
Nullability
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Best practices
HTTP
JSON (with GZIP)
Versioning
Nullability
Pagination
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Best practices
HTTP
JSON (with GZIP)
Versioning
Nullability
Pagination
Server-side Batching & Caching
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Pagination example
1 {
2 hero {
3 name
4 friends(first :2) {
5 name
6 }
7 }
8 }
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Batching - library
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
How to setup a GraphQL server?
Syntax
Types
Best practices
Batching - library
https://github.com/nodkz/react-relay-network-layer
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
Useful tools
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
Useful tools
Relay https://github.com/facebook/relay
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
Useful tools
Relay https://github.com/facebook/relay
GraphiQL https://github.com/graphql/graphiql
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
Useful tools
Relay https://github.com/facebook/relay
GraphiQL https://github.com/graphql/graphiql
Adrenaline https://github.com/gyzerok/adrenaline
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
Useful tools
Relay https://github.com/facebook/relay
GraphiQL https://github.com/graphql/graphiql
Adrenaline https://github.com/gyzerok/adrenaline
Apollo client
https://github.com/apollostack/apollo-client
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
Useful tools
Relay https://github.com/facebook/relay
GraphiQL https://github.com/graphql/graphiql
Adrenaline https://github.com/gyzerok/adrenaline
Apollo client
https://github.com/apollostack/apollo-client
Apollo iOS
https://github.com/apollostack/apollo-ios
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
Alternatives
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
Alternatives
Falcor (not yet available)
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
Alternatives
Falcor (not yet available)
SPARQL
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
Alternatives
Falcor (not yet available)
SPARQL
Graph databases like Neo4j, ArangoDB
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
What problems does it solve?
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
What problems does it solve?
client - server and microservices communication
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
What problems does it solve?
client - server and microservices communication
more precise than REST
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
What problems does it solve?
client - server and microservices communication
more precise than REST
versioning
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
Sources
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
Sources
The examples have been got from GraphQL official site
http://graphql.org/learn/
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
The end
Piotr Sroczkowski GraphQL
Introduction
Origin
History
Usage
Alternatives & useful tools
End
The end
Thank you
Piotr Sroczkowski GraphQL

More Related Content

PPTX
GraphQL Introduction
PPTX
Introduction to GraphQL
PDF
GraphQL in an Age of REST
PDF
Better APIs with GraphQL
PDF
GraphQL & Relay
PDF
PDF
GraphQL + relay
PDF
Intro to GraphQL
GraphQL Introduction
Introduction to GraphQL
GraphQL in an Age of REST
Better APIs with GraphQL
GraphQL & Relay
GraphQL + relay
Intro to GraphQL

What's hot (20)

PDF
GraphQL: Enabling a new generation of API developer tools
PDF
PPT
Graphql presentation
PDF
GraphQL
PDF
Graphql
PDF
Let's Graph
PPTX
An intro to GraphQL
PDF
REST vs GraphQL
PDF
GraphQL With Relay Part Deux
PPTX
Introduction to graphQL
PDF
The Apollo and GraphQL Stack
PDF
Why UI Developers Love GraphQL - Sashko Stubailo, Apollo/Meteor
PDF
Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)
PDF
Adding GraphQL to your existing architecture
PPTX
Into to GraphQL
PDF
How to GraphQL
PDF
GraphQL: The Missing Link Between Frontend and Backend Devs
PDF
Modular GraphQL with Schema Stitching
PDF
GraphQL across the stack: How everything fits together
PDF
GraphQL IndyJS April 2016
GraphQL: Enabling a new generation of API developer tools
Graphql presentation
GraphQL
Graphql
Let's Graph
An intro to GraphQL
REST vs GraphQL
GraphQL With Relay Part Deux
Introduction to graphQL
The Apollo and GraphQL Stack
Why UI Developers Love GraphQL - Sashko Stubailo, Apollo/Meteor
Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)
Adding GraphQL to your existing architecture
Into to GraphQL
How to GraphQL
GraphQL: The Missing Link Between Frontend and Backend Devs
Modular GraphQL with Schema Stitching
GraphQL across the stack: How everything fits together
GraphQL IndyJS April 2016
Ad

Viewers also liked (18)

PDF
GraphQL Story: Intro To GraphQL
PDF
Technologia, a Startup - Brainhub
PDF
How should you React to Redux
PDF
Wprowadzenie do React
PDF
GraphQL 101
PDF
Why and How You Should Move from PHP to Node.js
PDF
Lexical scope, function vs. block scope, hoisting, scope closures
PDF
楽天のプライベートクラウドを支えるフラッシュストレージ
PPTX
Graph QL Introduction
PDF
'The History of Metrics According to me' by Stephen Day
PPTX
React. Redux. Real world.
PDF
All you need to know about Callbacks, Promises, Generators
PDF
Light Weight Transactions Under Stress (Christopher Batey, The Last Pickle) ...
PDF
ES2015 / ES6 Podstawy nowoczesnego JavaScriptu
PDF
React and redux
PDF
How Master GraphQL by Francois de Campredon
PDF
JavaScript and Desktop Apps - Introduction to Electron
PDF
Cassandra Materialized Views
GraphQL Story: Intro To GraphQL
Technologia, a Startup - Brainhub
How should you React to Redux
Wprowadzenie do React
GraphQL 101
Why and How You Should Move from PHP to Node.js
Lexical scope, function vs. block scope, hoisting, scope closures
楽天のプライベートクラウドを支えるフラッシュストレージ
Graph QL Introduction
'The History of Metrics According to me' by Stephen Day
React. Redux. Real world.
All you need to know about Callbacks, Promises, Generators
Light Weight Transactions Under Stress (Christopher Batey, The Last Pickle) ...
ES2015 / ES6 Podstawy nowoczesnego JavaScriptu
React and redux
How Master GraphQL by Francois de Campredon
JavaScript and Desktop Apps - Introduction to Electron
Cassandra Materialized Views
Ad

Similar to Introduction to GraphQL (20)

PDF
All About GRAND Stack: GraphQL, React, Apollo, and Neo4j (Mark Needham) - Gre...
PDF
GraphQL Schema Stitching with Prisma & Contentful
PDF
GraphQL as an alternative approach to REST (as presented at Java2Days/CodeMon...
PDF
Introduction to GraphQL
PDF
Overview of GraphQL & Clients
PDF
GraphQL & Prisma from Scratch
PDF
PDF
React & GraphQL
PDF
Building and deploying GraphQL Servers with AWS Lambda and Prisma I AWS Dev D...
PDF
Neo4j Introduction (for Techies)
PDF
MongoDB.local Berlin: Building a GraphQL API with MongoDB, Prisma and Typescript
PPTX
Document Model for High Speed Spark Processing
PDF
Unlock cassandra data for application developers using graphQL
PDF
GraphQL - A query language to empower your API consumers (NDC Sydney 2017)
PDF
Neo4j Morpheus: Interweaving Table and Graph Data with SQL and Cypher in Apac...
PDF
Building Fullstack Graph Applications With Neo4j
PPTX
Introduction to Graph QL
PDF
apidays LIVE Paris 2021 - GraphQL Today and Tomorrow by Uri Goldshtein, The G...
PDF
apidays LIVE Paris 2021 - Stargate.io, An OSS Api Layer for your Cassandra by...
PDF
Training Series: Build APIs with Neo4j GraphQL Library
All About GRAND Stack: GraphQL, React, Apollo, and Neo4j (Mark Needham) - Gre...
GraphQL Schema Stitching with Prisma & Contentful
GraphQL as an alternative approach to REST (as presented at Java2Days/CodeMon...
Introduction to GraphQL
Overview of GraphQL & Clients
GraphQL & Prisma from Scratch
React & GraphQL
Building and deploying GraphQL Servers with AWS Lambda and Prisma I AWS Dev D...
Neo4j Introduction (for Techies)
MongoDB.local Berlin: Building a GraphQL API with MongoDB, Prisma and Typescript
Document Model for High Speed Spark Processing
Unlock cassandra data for application developers using graphQL
GraphQL - A query language to empower your API consumers (NDC Sydney 2017)
Neo4j Morpheus: Interweaving Table and Graph Data with SQL and Cypher in Apac...
Building Fullstack Graph Applications With Neo4j
Introduction to Graph QL
apidays LIVE Paris 2021 - GraphQL Today and Tomorrow by Uri Goldshtein, The G...
apidays LIVE Paris 2021 - Stargate.io, An OSS Api Layer for your Cassandra by...
Training Series: Build APIs with Neo4j GraphQL Library

More from Brainhub (18)

PDF
Czy jest alternatywa dla chmury?
PDF
Jak zostać Dev w DevOps? O zwiększaniu niezależności zespołów developerskich ...
PDF
AWS – jak rozpocząć przygodę z chmurą?
PDF
Konfiguracja GitLab CI/CD pipelines od podstaw
PDF
tRPC - czy to koniec GraphQL?
PDF
Solid.js - następca Reacta?
PDF
Struktury algebraiczne w JavaScripcie
PDF
WebAssembly - czy dzisiaj mi się to przyda do pracy?
PDF
Ewoluowanie neuronowych mózgów w JavaScript, wielowątkowo!
PDF
Go home TypeScript, you're drunk!
PDF
How I taught the messenger to tell lame jokes
PDF
The hunt of the unicorn, to capture productivity
PPTX
TDD in the wild
PDF
WebAssembly - kolejny buzzword, czy (r)ewolucja?
PDF
React performance
PDF
Introduction to RxJS
PDF
React Native in a nutshell
PDF
Ant Colony Optimization (Heuristic algorithms & Swarm intelligence)
Czy jest alternatywa dla chmury?
Jak zostać Dev w DevOps? O zwiększaniu niezależności zespołów developerskich ...
AWS – jak rozpocząć przygodę z chmurą?
Konfiguracja GitLab CI/CD pipelines od podstaw
tRPC - czy to koniec GraphQL?
Solid.js - następca Reacta?
Struktury algebraiczne w JavaScripcie
WebAssembly - czy dzisiaj mi się to przyda do pracy?
Ewoluowanie neuronowych mózgów w JavaScript, wielowątkowo!
Go home TypeScript, you're drunk!
How I taught the messenger to tell lame jokes
The hunt of the unicorn, to capture productivity
TDD in the wild
WebAssembly - kolejny buzzword, czy (r)ewolucja?
React performance
Introduction to RxJS
React Native in a nutshell
Ant Colony Optimization (Heuristic algorithms & Swarm intelligence)

Recently uploaded (20)

PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PPTX
Log360_SIEM_Solutions Overview PPT_Feb 2020.pptx
PPTX
Transform Your Business with a Software ERP System
PDF
medical staffing services at VALiNTRY
PPTX
Computer Software and OS of computer science of grade 11.pptx
PDF
Designing Intelligence for the Shop Floor.pdf
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PPTX
Monitoring Stack: Grafana, Loki & Promtail
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
iTop VPN 6.5.0 Crack + License Key 2025 (Premium Version)
PDF
Cost to Outsource Software Development in 2025
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
AutoCAD Professional Crack 2025 With License Key
PDF
Tally Prime Crack Download New Version 5.1 [2025] (License Key Free
PDF
Digital Systems & Binary Numbers (comprehensive )
PDF
How to Make Money in the Metaverse_ Top Strategies for Beginners.pdf
PPTX
Operating system designcfffgfgggggggvggggggggg
PPTX
Advanced SystemCare Ultimate Crack + Portable (2025)
PDF
17 Powerful Integrations Your Next-Gen MLM Software Needs
PDF
Salesforce Agentforce AI Implementation.pdf
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
Log360_SIEM_Solutions Overview PPT_Feb 2020.pptx
Transform Your Business with a Software ERP System
medical staffing services at VALiNTRY
Computer Software and OS of computer science of grade 11.pptx
Designing Intelligence for the Shop Floor.pdf
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Monitoring Stack: Grafana, Loki & Promtail
Navsoft: AI-Powered Business Solutions & Custom Software Development
iTop VPN 6.5.0 Crack + License Key 2025 (Premium Version)
Cost to Outsource Software Development in 2025
Internet Downloader Manager (IDM) Crack 6.42 Build 41
AutoCAD Professional Crack 2025 With License Key
Tally Prime Crack Download New Version 5.1 [2025] (License Key Free
Digital Systems & Binary Numbers (comprehensive )
How to Make Money in the Metaverse_ Top Strategies for Beginners.pdf
Operating system designcfffgfgggggggvggggggggg
Advanced SystemCare Ultimate Crack + Portable (2025)
17 Powerful Integrations Your Next-Gen MLM Software Needs
Salesforce Agentforce AI Implementation.pdf

Introduction to GraphQL