Introduction : Pourquoi GraphQL et Java sont une combinaison puissante
Le développement moderne d'API nécessite flexibilité et efficacité. Les API REST, malgré leur popularité, sont souvent confrontées au problème de surcharge de données (over-fetching) ou de sous-charge de données (under-fetching). GraphQL résout ces problèmes en permettant au client de demander uniquement les données dont il a besoin.
Java, quant à lui, reste l'un des langages les plus fiables pour le développement d'applications d'entreprise. La combinaison de GraphQL et de Java via le framework Spring Boot offre un outil puissant pour créer des API évolutives et performantes. Dans ce tutoriel étape par étape, nous allons créer une API GraphQL simple à partir de zéro.
Ce contenu sera utile aux développeurs Java qui souhaitent maîtriser une approche moderne de la construction d'API. Nous aborderons les concepts clés, écrirons du code et testerons notre implémentation.
1. Configuration du projet et des dépendances
La première étape consiste à créer un projet Spring Boot de base. Nous utiliserons Maven pour la gestion des dépendances. Assurez-vous d'avoir installé JDK 17+ et Maven 3.8+.
Créez un fichier pom.xml avec le contenu suivant :
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion>
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.2.0</version> </parent>
<groupId>com.example</groupId> <artifactId>graphql-java-tutorial</artifactId> <version>1.0.0</version>
<properties> <java.version>17</java.version> </properties>
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>com.graphql-java</groupId> <artifactId>graphql-spring-boot-starter</artifactId> <version>5.0.2</version> </dependency> <dependency> <groupId>com.graphql-java</groupId> <artifactId>graphql-java-tools</artifactId> <version>5.2.4</version> </dependency> </dependencies></project>Après avoir configuré le fichier pom.xml, créez la classe principale de l'application :
package com.example.graphqldemo;
import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplicationpublic class GraphqlDemoApplication { public static void main(String[] args) { SpringApplication.run(GraphqlDemoApplication.class, args); }}La structure du projet est maintenant prête. Passons à la définition des données.
2. Définition du modèle de données et du schéma GraphQL
Le schéma GraphQL est le contrat entre le client et le serveur. Nous allons commencer par créer un modèle simple Book (livre).
2.1 Classe du modèle Java
package com.example.graphqldemo.model;
public class Book { private String id; private String title; private String author; private int pages;
public Book(String id, String title, String author, int pages) { this.id = id; this.title = title; this.author = author; this.pages = pages; }
// Getters et Setters public String getId