Serveur GraphQL sous Symfony

Serveur GraphQL sous Symfony

22 octobre 2021

GraphQL est un langage de requête et un environnement d'exécution, créée par Facebook en 2012 et mis à disposition en open-source en 2015, permettant d'effectuer des requêtes à son API.

Cette solution vous permet d'obtenir qu'un seul point d'entrée (endpoint) sur votre API afin de récupérer que les informations qui vous intéressent et dans l'ordre que vous voulez. Bien évidemment, il est toujours possible d'ajouter, mettre à jour et supprimer des données.

Vous pouvez demander les informations que vous souhaitez d'une manière relativement simple :

query {
  users {
    firstname,
     lastname
    likes {
      picture
    }
  }
}

Le résultat retourné par l'API serait :

{
    "data": {
        "posts": [
            {
                "firstname": "John", 
                "lastname": "Doe", 
                "likes": [
                    {
                        "picture": "https://www.ladn.eu/wp-content/uploads/2016/08/6356938644488566691013182599_grumpy-cat-1200x630.jpg"
                    }
                ]
            }, 
            {
                "firstname": "Jane", 
                "lastname": "Doe", 
                "likes": []
            }
        ]
    }
}

Installation

Exécuter la commande suivante dans votre terminal de commandes :

composer require overblog/graphql-bundle -W

Le flag -W est important. Sans cela, il est possible que vous rencontriez des problèmes lors de son installation. Cela signifie que vous voulez installer les dépendances nécessaires.

Installez une interface graphique avec la commande suivante :

composer require --dev overblog/graphiql-bundle

Lancer votre serveur Symfony via la commande :

symfony serve

GraphiQLest maintenant accessible depuis l'URL : http://127.0.0.1:8000/graphiql et le endpoint de notre application est http://127.0.0.1:8000.