Anthony Giniers

@antogyn

@aginiers

GraphQL :

Back-end

https://slides.com/antogyn/graphql-backend

GraphQL côté server...

... c'est un principe poussé jusqu'au bout

Résolution de champs

Resolvers

type Query {
  human(id: ID!): Human
}

type Human {
  id: ID!
  name: String!
  friends: [Human]
}

Comment implémenter ce schéma ?

const Resolvers = {
  Query: {
    human(_, { id }) {
      return getHumanById(id);
    },
  },
  Human: {
    id(human) {
      return human.id;
    },
    name(human) {
      return human.name;
    },
    friends(human) {
      return getFriendsOfHuman(human.id);
    },
  },
};

1 resolver/champ

Un resolver a trois arguments :

  • L'objet parent
  • Les paramètres
  • Un contexte (qu'on n'a pas utilisé ici)
const Resolvers = {
  Query: {
    human(_, { id }) {
      return getHumanById(id);
    },
  },
  Human: {
    friends(human) {
      return getFriendsOfHuman(human.id);
    },
  },
};

Live coding avec

Apollo Server

https://github.com/antogyn/graphql-simple-backend

Comment gérér les authorisations ?

=> En utilisant le contexte

Démo

Merci !

Questions ?