0% ont trouvé ce document utile (0 vote)
81 vues5 pages

TD1 Avec Correction

Le document présente des exercices sur la création d'API RESTful et de schémas GraphQL. Il décrit les exigences pour créer des endpoints pour la gestion des utilisateurs et des commandes, ainsi que la définition d'un type Etudiant en GraphQL. Des corrections détaillées pour chaque exercice sont également fournies, incluant des exemples de requêtes et de réponses.

Transféré par

asma.belkahla.chaabane
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
81 vues5 pages

TD1 Avec Correction

Le document présente des exercices sur la création d'API RESTful et de schémas GraphQL. Il décrit les exigences pour créer des endpoints pour la gestion des utilisateurs et des commandes, ainsi que la définition d'un type Etudiant en GraphQL. Des corrections détaillées pour chaque exercice sont également fournies, incluant des exemples de requêtes et de réponses.

Transféré par

asma.belkahla.chaabane
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

TD : REST & GraphQL avec Correction A.U.

: 2024/2025
Matière : SoA & Microservices
Enseignant : Dr. Salah Gontara
Classe : 4Info

Exercice 1 :

1. Créez un endpoint d'API RESTful pour créer un nouveau compte utilisateur avec les
exigences suivantes :
• Le request body doit inclure le nom, l'adresse e-mail et le mot de passe de l'utilisateur.
• Le client doit créer un hash du mot de passe avant de le stocker dans la base de
données.
• L'API doit générer un ID unique pour le nouvel utilisateur.
• L'API doit renvoyer un response body qui inclut l'ID du nouvel utilisateur et un lien
pour récupérer les détails de l'utilisateur.
2. Créez un endpoint d'API RESTful pour récupérer une liste de commandes avec les
exigences suivantes :
• L'API doit prendre en charge la pagination avec une limite de 10 commandes par
page.
• L'API doit prendre en charge le filtrage par nom de client et plage de dates.
• L'API doit renvoyer un corps de réponse qui inclut la liste des commandes, le nombre
total de commandes et des liens vers les pages précédentes et suivantes.

Correction :

1) Requête :
• Méthode : POST
• Endpoint : /v1/users
• Accept : application/json
• Content-Type : application/json
• Request body :
{ "username" : "user321",
"email": [email protected]",
"password" : " $2b$12$KIXQZrfim2rLjbO3sHiuCO4evN3QR4R9Xr1WQZXX7piN5"
}
Réponse :
• Code HTTP: 201 Created
• Location : /v1/users/321
• Content-Type : application/json
• Response body :
{ "id" : "321",
"_link" : "/ v1/users/321"
}
2) Requête
• HTTP method: GET
• Accept : application/json
• Endpoint: /orders?customer_name=johndoe&start_date=01-02-2022&end_date=01-03-
2022&limit=10&offset=0

Réponse

• Code HTTP: 200 OK


• Content-type: application/json

"orders": [

"id": "1001",

"customer_name": "John Doe",

"order_date": "2022-02-01",

"total_amount": 99.99

},

"id": "1002",

"customer_name": "Jane Smith",

"order_date": "2022-02-05",

"total_amount": 149.99
}

// ...

],

"total": 25,

"previous":
"/orders?customer_name={customer_name}&start_date={start_date}&end_date={end_date}&limit=10&
offset=0",

"next":
"/orders?customer_name={customer_name}&start_date={start_date}&end_date={end_date}&limit=10&
offset=10"

3)

Exercice 2 :

Définir un schéma GraphQL simple qui possède un type Etudiant.

Un étudiant peut avoir :

• ID : identifiant de l’étudiant.
• nom : une chaîne de caractères représentant le nom de l'étudiant.
• email : une chaîne de caractères représentant l'email de l'étudiant.
• age : un nombre entier représentant l'âge de l'étudiant.
• filiere : une chaîne de caractères représentant la filière de l'étudiant.

1. Écrire une requête GraphQL pour récupérer tous les étudiants et leurs informations
correspondantes.
2. Écrire une requête GraphQL pour récupérer tous les étudiants appartenant à une filière
spécifique.
3. Écrire une requête GraphQL pour récupérer un étudiant spécifique par son ID.
4. Ajouter des mutations GraphQL pour :
• ajouterEtudiant : permet d'ajouter un nouvel étudiant en spécifiant son nom, son
email, son âge et sa filière.
• modifierEtudiant : permet de modifier un étudiant existant en utilisant son
identifiant et en spécifiant les nouveaux champs.
• supprimerEtudiant : permet de supprimer un étudiant en utilisant son identifiant.

Correction :

Schéma :

type Etudiant {

id: ID!

nom: String!

email: String!

age: Int!

filiere: String!

type Query {

tousLesEtudiants: [Etudiant !] !

etudiantsParFiliere(filiere: String!): [Etudiant] !

etudiantParId(id: ID!): Etudiant

}
type Mutation {

ajouterEtudiant(nom: String!, email: String!, age: Int!, filiere: String!): Etudiant !

modifierEtudiant(id: ID!, nom: String, email: String, age: Int, filiere: String): Etudiant !

supprimerEtudiant(id: ID!): ID !

Vous aimerez peut-être aussi