Année Universitaire : 2021-2022
Ateliers SOA
UP- WEB
Atelier
Génération d’une application GraphQL
Objectifs
- Créer une API java en utilisant GraphQL.
- Tester les Query dans une application GraphQL.
La mise en œuvre de l’application
Créer un projet Maven avec le packaging war.
Ajouter les dépendances suivantes au fichier POM :
<dependencies>
<dependency>
<groupId>com.graphql-java</groupId>
<artifactId>graphql-java</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>com.graphql-java</groupId>
<artifactId>graphql-java-tools</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>com.graphql-java</groupId>
<artifactId>graphql-java-servlet</artifactId>
<version>4.0.0</version>
Page 1 sur 4
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
</dependencies>
Création de l’entité
Créer la classe « Student.java » dans le package « esprit.tn.soa.entity ».
Création de la classe GraphQL :
Créer la classe « GraphQLEndpoint.java » dans le package « esprit.tn.soa.graphql ».
NB :
Page 2 sur 4
- @WebServlet est utilisée pour définir un composant Servlet dans une application Web. Cette
annotation est spécifiée sur une classe et contient des métadonnées sur le servlet déclaré.
- urlPatterns est le paramètre permettant de définir le chemin d’accès à la ressource.
Création de la classe Repository
Créer la classe « StudentRepository.java » dans le package « esprit.tn.soa.repository ».
Création de la classe Query :
Créer la classe « Query.java » dans le package « esprit.tn.soa.graphql »
Création du fichier schema.graphqls :
Créer le fichier « schema.graphqls » dans src/main/ressources.
Page 3 sur 4
Déployer le projet et tester l’url via postman :
http://localhost:port/nomProjet/graphql
Ajouter une méthode de recherche et tester via postman.
Bon Travail
Page 4 sur 4