Aller au contenu

Partie 1 : Mise en place

Apprenez à initialiser GraphQL dans une application Spring Boot. En quelques étapes, configurez votre projet avec les dépendances nécessaires et préparez-vous à explorer les avantages de GraphQL pour une gestion de données efficace et ciblée.

Un bateau pirate en route vers l'ile de GraphQL

Journal de bord du capitaine, jour 1 dans la mer des technologies modernes :

musique de fond pour l'article


Aujourd’hui, je note dans ce journal les mystères d'une île que l’on nomme GraphQL. Une alternative intrigante aux contrées de REST, elle promet bien des trésors en permettant aux clients d'exiger exactement les données qu'ils souhaitent, ni plus ni moins.
Une trouvaille qui pourrait bien réduire la surcharge de données, rendant notre navigation plus efficace et agile.

Pourquoi mettre le cap sur GraphQL ?

L'attrait de cette île mystérieuse réside dans plusieurs avantages dignes d'un bon capitaine et de son équipage :

  • Optimisation des requêtes : avec GraphQL, nul besoin de traîner des coffres de données inutiles ! Les clients ne récoltent que les champs dont ils ont véritablement besoin, allégeant ainsi nos précieuses ressources.
  • Relations de données : imaginez pouvoir explorer toutes les relations entre auteurs et articles d’un simple coup d’œil. Ce qui nécessiterait bien des détours avec REST, peut être obtenu en une seule requête avec GraphQL.
  • Schéma auto-documenté : l’île de GraphQL est cartographiée automatiquement, offrant une documentation qui permet à tout équipage de comprendre ce qui est disponible sans lever le moindre doigt.

Configurer notre galion Spring Boot pour GraphQL

Pour accoster sur l’île de GraphQL, il nous faut d’abord préparer notre navire, Spring Boot.
En passant par Spring Initializr, nous avons sélectionné des fournitures essentielles :

Spring Initializr

Depuis l'interface de Spring Initializr, sélectionner les dépendances suivantes :

  • Spring Web : Cette dépendance embarque le soutien pour les routes HTTP, permettant de servir les requêtes nécessaires pour GraphQL.
  • Spring for GraphQL : L’ingrédient secret qui nous ouvre les portes de cette contrée, avec la possibilité de définir des schémas et de manier des requêtes et mutations d’une simple commande.
  • Spring Data JPA : Pour manipuler notre base de données comme bon nous semble.
  • H2 Database : Un petit coffre H2 qui, pour l’instant, suffira pour notre exploration.
Spring Initializr

Il ne nous reste maintenant qu'à générer notre projet.

Nos armes secrètes : les dépendances

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

starter web

Cette dépendance est notre première arme, apportant le support pour bâtir des applications web. Bien que principalement associée aux API REST, elle est essentielle pour que notre navire serve les requêtes HTTP jusqu’à notre île GraphQL. Ce starter configure également un serveur web intégré, généralement Tomcat, pour gérer le transit des requêtes HTTP vers GraphQL.

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-graphql</artifactId>
</dependency>

starter graphql

L’arme qui donne à notre équipage tout le pouvoir de GraphQL ! Elle simplifie grandement l’intégration de GraphQL dans Spring Boot, en nous permettant de définir des schémas GraphQL et d’utiliser des annotations comme @QueryMapping et @MutationMapping.
Elle donne accès à une interface interactive nommée GraphiQL, qui permet de tester facilement les API GraphQL. Un trésor pour tout explorateur technique.


Journal de bord, fin de l'entrée du jour. Demain, nous mettrons les voiles vers la configuration de nos schémas pour explorer pleinement les mystères de GraphQL et lier auteurs et articles dans cette nouvelle aventure.

Prochainement

[DRAFT]Partie 2 : le schéma dans GraphQL
Découvrez comment mettre en place votre première API GraphQL avec Spring Boot en suivant ce tutorial pas à pas. Au programme dans cette partie : mise en place et explication du schéma.

Tout le code relatif à cet article est disponible ici :

GitHub - ErwanLT/springboot-demo: Demo project for spring-boot possibility
Demo project for spring-boot possibility. Contribute to ErwanLT/springboot-demo development by creating an account on GitHub.

Dernier