Finished and tested
This commit is contained in:
89
README.md
89
README.md
@@ -1,11 +1,75 @@
|
||||
# TP TAA
|
||||
|
||||
|
||||
## TP1 - TP2
|
||||
|
||||
### Compte rendu
|
||||
Dans ce TP REST, nous avons implémenté les éléments suivants:
|
||||
- Mapper pour convertir les entités vers les DTO et inversement
|
||||
- Lombok afin de simplifier le code et éviter le code boilerplate (getters, setters, constructeurs, etc.)
|
||||
- API REST pour exposer les différentes ressources
|
||||
- Swagger UI pour documenter et tester facilement toutes les méthodes de l’API.
|
||||
- DTO (Data Transfer Objects) afin d’éviter les problèmes de boucle infinie liés aux relations bidirectionnelles entre entités.
|
||||
|
||||
#### Utilisateur Resource
|
||||
#### Execution du projet
|
||||
Recharger les dépendances Maven :
|
||||
`mvn clean install`
|
||||
|
||||
Lancer la base de données (Linux) : `./run-hsqldb-server.sh`
|
||||
|
||||
Lancer le serveur par fichier `src/main/java/fr.istic.taa.jaxrs/RestServer.java`
|
||||
|
||||
Après le serveur est lacné, on a testé des appels API avec Insomnia et interface Swagger est accessible via:
|
||||
`http://localhost:8080/api`
|
||||
|
||||
#### Diagramme de classe
|
||||
```mermaid
|
||||
classDiagram
|
||||
Utilisateur "*" -- "*" Session
|
||||
Session "*" -- "*" Quizz
|
||||
Quizz "1" -- "1..*" Question
|
||||
Utilisateur "1" -- "*" Quizz
|
||||
Question "1" -- "1" Reponse
|
||||
Reponse <|-- ReponseCourte
|
||||
Reponse <|-- Choix
|
||||
|
||||
class Utilisateur {
|
||||
-id : int
|
||||
-name : String
|
||||
-session : List<Session>
|
||||
-email : String
|
||||
-password : String
|
||||
-quizzs : String
|
||||
}
|
||||
class Session{
|
||||
-id : int
|
||||
-codePIN : int
|
||||
-quizzs : List<Quizz>
|
||||
-utilisateurs : List<Utilisateur>
|
||||
-theme : String
|
||||
}
|
||||
class Quizz{
|
||||
-session: Session
|
||||
-id : int
|
||||
-utilisateur: Utilisateur
|
||||
}
|
||||
class Reponse{
|
||||
-id : int
|
||||
-question: Question
|
||||
-reponses : ArrayList<String>
|
||||
}
|
||||
class Choix{
|
||||
-choix : ArrayList<String>
|
||||
}
|
||||
class ReponseCourte{
|
||||
-value : String
|
||||
}
|
||||
class Question{
|
||||
-id : int
|
||||
-reponse: Reponse
|
||||
}
|
||||
```
|
||||
|
||||
##### Utilisateur Resource
|
||||
| Methode | URL | Description |
|
||||
|---------|---------------------------------------------------|-------------------------------------------------------|
|
||||
| GET | `/utilisateur` | Retourne toute la liste de l'utilisateur |
|
||||
@@ -16,7 +80,7 @@
|
||||
| PUT | `/utilisateur/{user_id}/add_session/{session_id}` | Ajoute un nouveau session à la liste de l'utilisateur |
|
||||
| DELETE | `/utilisteur/{user_id}/delete` | Supprime l'utilisateur |
|
||||
|
||||
#### Session Resource
|
||||
##### Session Resource
|
||||
| Methode | URL | Description |
|
||||
|---------|--------------------------------------|------------------------------------|
|
||||
| GET | `/session` | Retourne toute la liste du session |
|
||||
@@ -25,29 +89,28 @@
|
||||
| GET | `/session/{session_id}/utilisateurs` | Retourne la liste de l'utilisateur |
|
||||
| DELETE | `/session/{session_id}/delete` | Supprime la session |
|
||||
|
||||
#### Quizz Resource
|
||||
| Methode | URL | Description |
|
||||
|---------|------------------------------------------------|----------------------------------------|
|
||||
| GET | `/quizz` | Retourne toute la liste du quizz |
|
||||
| GET | `/quizz/{quizz_id}/add_question/{question_id}` | Ajoute une nouvuelle question au quizz |
|
||||
| DELETE | `/quizz/{quizz_id}/delete` | Suprrime le quizz |
|
||||
| PUT | `/quizz/{quizz_id}/deleteQ` | Supprime toute les questions de quizz |
|
||||
##### Quizz Resource
|
||||
| Methode | URL | Description |
|
||||
|---------|------------------------------------------------|-----------------------------------------|
|
||||
| GET | `/quizz` | Retourne toute la liste du quizz |
|
||||
| GET | `/quizz/{quizz_id}/questions | Retourne toutes questions du quizz |
|
||||
| GET | `/quizz/{quizz_id}/add_question/{question_id}` | Ajoute une nouvuelle question au quizz |
|
||||
| DELETE | `/quizz/{quizz_id}/delete` | Suprrime le quizz |
|
||||
| PUT | `/quizz/{quizz_id}/deleteQ` | Supprime toute les questions de quizz |
|
||||
|
||||
#### Question Resource
|
||||
##### Question Resource
|
||||
| Methode | URL | Description |
|
||||
|----------|----------------------------------------------------|-----------------------------------------------------------------------|
|
||||
| GET | `/question` | Retourne toute la liste du question |
|
||||
| POST | `/question/addQuestion` | Créer une question |
|
||||
| PUT | `/question/{question_id}/changeQuestion` | Change l'énoncé de la question |
|
||||
| GET | `/question/{question_id}/getReponse` | retourne l'objet Reponse |
|
||||
| PUT | `/question/{question_id}/addReponse` | Ajoute une réponse à Reponse |
|
||||
| DELETE | `/question/{question_id}/deletReponses` | supprime toute les réponse correct |
|
||||
| PUT | `/question/{question_id}/addReponse` | Ajoute une réponse à Reponse |
|
||||
| PUT | `/question/{question_id}/setReponse/choix` | créer un nouvel objet Reponse de type Choix pour la question |
|
||||
| PUT | `/question/{question_id}/setReponse/reponseCourte` | créer un nouvel objet Reponse de type reponse courte pour la question |
|
||||
| PUT | `/question/{question_id}/addChoix` | rajoute un choix si Reponse est de type Choix |
|
||||
|
||||
|
||||
## Auteurs
|
||||
|
||||
- Tuan Minh VU
|
||||
|
||||
Reference in New Issue
Block a user