Retour

GraphQL avec Symfony

Tuto
28 mars 2018
39mn

Progression
4

Création des types GraphQL

Installation du bundle

Commençons par installer le bundle https://github.com/overblog/GraphQLBundle

composer require overblog/graphql-bundle

Nous ajoutons au même moment l'IDE GraphiQL qui est contenu dans un autre bundle https://github.com/overblog/GraphiQLBundle. L'IDE permet d'afficher directement la documentation, ainsi que d'effectuer les query :

composer req --dev overblog/graphiql-bundle

Normalement l'url http://symfony.localhost/graphiql est disponible (avec une erreur 500)

Types objet

Nous allons commencer par créer les types GraphQL pour les trois principaux objets :

  • Astronaute
  • Planète
  • Grade

Nous allons ensuite mettre les types dans le dossier config/graphql/types.

Grade

On commence par grade qui est l'objet le plus simple, il ne contient que le nom du grade.

Ajoutez le fichier Grade.yaml avec le code suivant :

Grade: type: object config: fields: id: type: 'Int!' name: type: 'String!'

Planète

Ajoutez le fichier Planet.yaml avec le code suivant :

Planet: type: object config: fields: id: type: 'Int!' name: type: 'String!' astronauts: type: '[Astronaut]'

Comme vous le remarquez, le type GraphQL ne suit pas directement le type MySQL. Ici on permet la récupération directement dans l'object planet de l'ensemble des astronautes.

Astronaute

Ajoutez le fichier Astronaut.yaml avec le code suivant :

Astronaut: type: object config: fields: id: type: 'Int!' pseudo: type: 'String!' grade: type: 'Grade' planet: type: 'Planet'

Dans le cas de l'astronaute, l'objet contient directement le grade et la planet.

Retrouvez le code directement ici


Articles sur le même thème

Comment créer de la dette technique dès le début d’un nouveau projet ?

Quand on arrive sur un projet existant, on doit souvent subir une dette technique qui nous fait perdre du temps et qui nous rend fou au point de vérifier qui a fait le code. Vous aussi vous voulez entrer dans la postérité lors d’un git blame et mal concevoir votre produit ?

9 août 20238mnMarianne Joseph-Géhannin

Découvrez Eleven Labs

Notre site pour mieux nous connaître

J'y vais

Contact

Eleven Labs - Paris

102, rue du Faubourg Saint Honoré

75008 Paris

Eleven Labs - Nantes

42, rue la Tour d'Auvergne

44200 Nantes

Eleven Labs - Montréal

1155, Metcalfe St Suite 1500

Montréal, QC H3B 2V6, Canada

business@eleven-labs.com

01.82.83.11.75