SlideShare ist ein Scribd-Unternehmen logo
1 von 101
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

The Apollo and GraphQL Stack
The Apollo and GraphQL StackThe Apollo and GraphQL Stack
The Apollo and GraphQL Stack
Sashko Stubailo
 

Was ist angesagt? (20)

GraphQL: Enabling a new generation of API developer tools
GraphQL: Enabling a new generation of API developer toolsGraphQL: Enabling a new generation of API developer tools
GraphQL: Enabling a new generation of API developer tools
 
Graphql
GraphqlGraphql
Graphql
 
Graphql presentation
Graphql presentationGraphql presentation
Graphql presentation
 
GraphQL
GraphQLGraphQL
GraphQL
 
Graphql
GraphqlGraphql
Graphql
 
Let's Graph
Let's GraphLet's Graph
Let's Graph
 
An intro to GraphQL
An intro to GraphQLAn intro to GraphQL
An intro to GraphQL
 
REST vs GraphQL
REST vs GraphQLREST vs GraphQL
REST vs GraphQL
 
GraphQL With Relay Part Deux
GraphQL With Relay Part DeuxGraphQL With Relay Part Deux
GraphQL With Relay Part Deux
 
Introduction to graphQL
Introduction to graphQLIntroduction to graphQL
Introduction to graphQL
 
Graphql Intro (Tutorial and Example)
Graphql Intro (Tutorial and Example)Graphql Intro (Tutorial and Example)
Graphql Intro (Tutorial and Example)
 
The Apollo and GraphQL Stack
The Apollo and GraphQL StackThe Apollo and GraphQL Stack
The Apollo and GraphQL Stack
 
Why UI Developers Love GraphQL - Sashko Stubailo, Apollo/Meteor
Why UI Developers Love GraphQL - Sashko Stubailo, Apollo/MeteorWhy UI Developers Love GraphQL - Sashko Stubailo, Apollo/Meteor
Why UI Developers Love GraphQL - Sashko Stubailo, Apollo/Meteor
 
Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)
Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)
Introduction to GraphQL (or How I Learned to Stop Worrying about REST APIs)
 
Adding GraphQL to your existing architecture
Adding GraphQL to your existing architectureAdding GraphQL to your existing architecture
Adding GraphQL to your existing architecture
 
Into to GraphQL
Into to GraphQLInto to GraphQL
Into to GraphQL
 
How to GraphQL
How to GraphQLHow to GraphQL
How to GraphQL
 
GraphQL: The Missing Link Between Frontend and Backend Devs
GraphQL: The Missing Link Between Frontend and Backend DevsGraphQL: The Missing Link Between Frontend and Backend Devs
GraphQL: The Missing Link Between Frontend and Backend Devs
 
Modular GraphQL with Schema Stitching
Modular GraphQL with Schema StitchingModular GraphQL with Schema Stitching
Modular GraphQL with Schema Stitching
 
GraphQL across the stack: How everything fits together
GraphQL across the stack: How everything fits togetherGraphQL across the stack: How everything fits together
GraphQL across the stack: How everything fits together
 

Andere mochten auch

Light Weight Transactions Under Stress (Christopher Batey, The Last Pickle) ...
Light Weight Transactions Under Stress  (Christopher Batey, The Last Pickle) ...Light Weight Transactions Under Stress  (Christopher Batey, The Last Pickle) ...
Light Weight Transactions Under Stress (Christopher Batey, The Last Pickle) ...
DataStax
 

Andere mochten auch (18)

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

Ähnlich wie Introduction to GraphQL

Training Series: Build APIs with Neo4j GraphQL Library
Training Series: Build APIs with Neo4j GraphQL LibraryTraining Series: Build APIs with Neo4j GraphQL Library
Training Series: Build APIs with Neo4j GraphQL Library
Neo4j
 

Ähnlich wie Introduction to GraphQL (20)

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

Mehr von Brainhub

Mehr von Brainhub (16)

AWS – jak rozpocząć przygodę z chmurą?
AWS – jak rozpocząć przygodę z chmurą?AWS – jak rozpocząć przygodę z chmurą?
AWS – jak rozpocząć przygodę z chmurą?
 
Konfiguracja GitLab CI/CD pipelines od podstaw
Konfiguracja GitLab CI/CD pipelines od podstawKonfiguracja GitLab CI/CD pipelines od podstaw
Konfiguracja GitLab CI/CD pipelines od podstaw
 
tRPC - czy to koniec GraphQL?
tRPC - czy to koniec GraphQL?tRPC - czy to koniec GraphQL?
tRPC - czy to koniec GraphQL?
 
Solid.js - następca Reacta?
Solid.js - następca Reacta?Solid.js - następca Reacta?
Solid.js - następca Reacta?
 
Struktury algebraiczne w JavaScripcie
Struktury algebraiczne w JavaScripcieStruktury algebraiczne w JavaScripcie
Struktury algebraiczne w JavaScripcie
 
WebAssembly - czy dzisiaj mi się to przyda do pracy?
WebAssembly - czy dzisiaj mi się to przyda do pracy?WebAssembly - czy dzisiaj mi się to przyda do pracy?
WebAssembly - czy dzisiaj mi się to przyda do pracy?
 
Ewoluowanie neuronowych mózgów w JavaScript, wielowątkowo!
Ewoluowanie neuronowych mózgów w JavaScript, wielowątkowo!Ewoluowanie neuronowych mózgów w JavaScript, wielowątkowo!
Ewoluowanie neuronowych mózgów w JavaScript, wielowątkowo!
 
Go home TypeScript, you're drunk!
Go home TypeScript, you're drunk!Go home TypeScript, you're drunk!
Go home TypeScript, you're drunk!
 
How I taught the messenger to tell lame jokes
How I taught the messenger to tell lame jokesHow I taught the messenger to tell lame jokes
How I taught the messenger to tell lame jokes
 
The hunt of the unicorn, to capture productivity
The hunt of the unicorn, to capture productivityThe hunt of the unicorn, to capture productivity
The hunt of the unicorn, to capture productivity
 
TDD in the wild
TDD in the wildTDD in the wild
TDD in the wild
 
WebAssembly - kolejny buzzword, czy (r)ewolucja?
WebAssembly - kolejny buzzword, czy (r)ewolucja?WebAssembly - kolejny buzzword, czy (r)ewolucja?
WebAssembly - kolejny buzzword, czy (r)ewolucja?
 
React performance
React performanceReact performance
React performance
 
Introduction to RxJS
Introduction to RxJSIntroduction to RxJS
Introduction to RxJS
 
React Native in a nutshell
React Native in a nutshellReact Native in a nutshell
React Native in a nutshell
 
Ant Colony Optimization (Heuristic algorithms & Swarm intelligence)
Ant Colony Optimization (Heuristic algorithms & Swarm intelligence)Ant Colony Optimization (Heuristic algorithms & Swarm intelligence)
Ant Colony Optimization (Heuristic algorithms & Swarm intelligence)
 

Kürzlich hochgeladen

The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 

Kürzlich hochgeladen (20)

%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 

Introduction to GraphQL