API - dudleydehenau/ScapeGame 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.