API - loyde07/RDI25 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

MongoDB pour une base NoSQL flexible

Express.js pour la gestion des routes et middleware

Node.js pour le backend asynchrone

React pour le frontend

2. Documentation de l'API

avec Postman ( bientot Swagger)

GET /api/teams/
→ Récupère toutes les équipes

GET /api/teams?open=true
→ Récupère les équipes ouvertes (moins de 5 joueurs)

GET /api/teams/:id
→ Récupère les infos d’une équipe par son ID

POST /api/teams/
{
  "nom": "Les Guerriers",
  "logo": "https://exemple.com/logo.png"
}
→ Crée une nouvelle équipe

POST /api/teams/:id/join
→ Le joueur connecté rejoint l’équipe (ajouté dans l’équipe + joueur.team_id mis à jour)

PATCH /api/joueurs/me/team
{
  "team_id": "ObjectId"
}
→ Met à jour le joueur connecté en lui assignant une équipe (modifie joueur.team_id)

DELETE /api/teams/:id/leave
→ Le joueur connecté quitte son équipe (optionnel)

GET /api/tournois/:id/teams
→ Liste des équipes inscrites dans un tournoi

POST /api/tournois/:id/teams
{
  "team_id": "ObjectId"
}
→ Inscrit une équipe dans le tournoi (création dans la collection d’inscription)

DELETE /api/tournois/:id/teams/:teamId
→ Retire une équipe du tournoi

Principes REST

  • endpoint clairs ex: /api/locals
  • utilisation verbes HTTP : get, post, put, delete
  • réponses JSON
  • status HTTP pour chaque requête

3. Outils utilisés pour développer et tester l'API

curl -X GET http://localhost:5000/locals/