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/