let's graph

37
Fabien de Maestri GraphQL

Upload: fabien-de-maestri

Post on 16-Apr-2017

456 views

Category:

Technology


0 download

TRANSCRIPT

Fabien de Maestri

GraphQL

Fabien de Maestri

@FdMstri

[email protected]

Freelance AngularJS / Node.js / ReactJS

Co-fondateur

GraphQL

« GraphQL is a query language and execution engine tied to any backend service. »

GraphQLAvoid painful refacto

GraphQLAvoid painful refacto

Single entry for endpoint

GraphQLAvoid painful refacto

Single entry for endpoint

Easy to debug

GraphQLAvoid painful refacto

Single entry for endpoint

Easy to debug

Agregate data easily

GraphQLAvoid painful refacto

Single entry for endpoint

Easy to debug

Agregate data easily

Normalization

GraphQLAvoid painful refacto

Single entry for endpoint

Easy to debug

Agregate data easily

Normalization

Easy to test

What can we see ?

Mirroring

What can we see ?

MirroringHierarchical

What can we see ?

MirroringHierarchical

Strongly typed

What can we see ?

MirroringHierarchical

Strongly typed

Version free !

Champs requis, Arguments

GET / POST

Champs requis, Arguments

CLIENT

Serveur GraphQL

resolve()

resolve()

GET / POST

Champs requis, Arguments

CLIENT SERVEUR

Serveur GraphQL

resolve()

resolve()

resolve()

GET / POST

Champs requis, Arguments

CLIENT SERVEUR

Serveur GraphQL

Agrégation de donnée

resolve()

resolve()

resolve()

GET / POST

Champs requis, Arguments

CLIENT SERVEUR

Serveur GraphQL

Agrégation de donnée

Normalisation

resolve()

resolve()

resolve()

GET / POST

Champs requis, Arguments

CLIENT SERVEUR

Serveur GraphQL

Typage

Agrégation de donnée

Normalisation

resolve()

resolve()

resolve()

GET / POST

Champs requis, Arguments

CLIENT SERVEUR

Serveur GraphQL

Typage

Agrégation de donnée

Normalisation

resolve()

resolve()

resolve()

GET / POST

Champs requis, Arguments

JSON

CLIENT SERVEUR

RootSchema

RootSchema

Operation

RootSchema

Operation

Types

Ressource Cars

Type

Ressource Cars

Type

Arguments

Ressource Cars

Type

Arguments

Ressource Cars

Type

Resolve

Arguments

Ressource Cars

Type

Resolve

Arguments

Composition

GraphiQL

Fast feedback

GraphiQL

Fast feedback

Explicit errors

GraphiQL

Fast feedback

Explicit errors

Automatic query completion

GraphiQL

Fast feedback

Explicit errors

Automatic query completion

Run and inspect query results.

GraphiQL

Fast feedback

Explicit errors

Automatic query completion

Run and inspect query results.

Introspection

Ecosystem

Used in Facebook’s native apps since 2012

Open source in July 2015

Front-end framework based on GraphQL like Relay

@leeb Lee Byron

Merci !