DevIII API - dudleydehenau/Ephec GitHub Wiki
Résumé coaching 5.a
+ Les choix de conception de l'API sont expliqués sur le Wiki : Ressources exposées, choix de nommage, technologie utilisée… Les noms et conventions utilisés sont cohérents.
+ La documentation de l'API est accessible depuis le Wiki. Elle est claire et bien organisée.
"Pour chaque ressource, une section détaille au moins :
* la description de la ressource
* les endpoints associés et les méthodes pour y accéder
* les éventuels paramètres disponibles
* un exemple de requête
* un exemple de réponse"
+ L'API respecte globalement les principes REST
+ Le groupe peut présenter un exemple fonctionnel de endpoint de l'API (par ex. avec curl). Tous les étudiants peuvent en expliquer le fonctionnement.
+ Le groupe utilise un outil adéquat dédié pour tester son API lors du développement
1. Choix de conception pour l'API
Les choix de conception de l'API sont détaillés dans le Wiki du projet. Les décisions incluent les ressources exposées, les choix de nommage, et la technologie utilisée. Les noms et conventions sont cohérents pour assurer une compréhension et une maintenance aisées.
2. Documentation de l'API
Basé sur l'output de l'automatisation de la documentation swagger :
API Documentation
General Information
Title: E-Organizer API
Description: API defined for a sample project during the course 'Développement Informatique III' at EPHEC Louvain-la-Neuve
Version: 1.0.0
Host: localhost:3000
BasePath: /
Schemes: http, https
Endpoints
/auth/signup
Method: POST
Description: User signup
Parameters:
- body (object):
- userFName (string): First name
- userLName (string): Last name
- userBirth (string): Birthdate
- userPassword (string): Password
- email (string): Email address
Responses:
- 200: OK
- 201: Created
/auth/login
Method: POST
Description: User login
Parameters:
- body (object):
- email (string): Email address
- userPassword (string): Password
Responses:
- 200: OK
/commentaire/{levelId}
Method: GET
Description: Get comments for a level
Parameters:
- levelId (string, path): Level ID
Responses: - 200: OK
/commentaire/
Method: POST
Description: Post a comment
Parameters:
- body (object):
- levelId (string): Level ID
- userId (string): User ID
- commentaryText (string): Commentary text
Responses:
- 200: OK
- 201: Created
/commentaire/{id}
Method: DELETE
Description: Delete a comment
Parameters:
- id (string, path): Comment ID
Responses: - 200: OK
/score/scores
Method: POST
Description: Post a score
Parameters:
- body (object):
- levelId (string): Level ID
- userId (string): User ID
- scoreBTime (string): Best time
Responses:
- 200: OK
- 201: Created
/scores/
Method: POST
Description: Post scores
Parameters:
- body (object):
- levelId (string): Level ID
- userId (string): User ID
- scoreBTime (string): Best time
Responses:
- 200: OK
- 201: Created
- 400: Bad Request
/scores/best/{userId}/{levelId}
Method: GET
Description: Get best scores
Parameters:
- userId (string, path): User ID
- levelId (string, path): Level ID
Responses: - 200: OK
- 500: Internal Server Error
/scores/update
Method: PUT
Description: Update scores
Parameters:
- body (object):
- levelId (string): Level ID
- userId (string): User ID
- score (string): Score
Responses:
- 200: OK
- 201: Created
- 400: Bad Request
/level/search
Method: GET
Description: Search levels
Parameters:
- term (string, query): Search term
Responses: - 200: OK
- 400: Bad Request
/level/data
Method: GET
Description: Get level data
Responses:
- 200: OK
- 404: Not Found
3. Outils utilisés pour développer et tester l'API
Le groupe utilise divers outils pour développer et tester l'API, assurant ainsi une qualité optimale et une conformité aux principes REST. Ces outils incluent des environnements de développement intégrés (IDE), des frameworks de test automatisés, et des outils de test API tels que Postman ou Swagger.