API - Tablify-Developement/Tablify-Web GitHub Wiki
+ 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
L'API du projet Tablify a été développée avec Express.js en TypeScript, dans une architecture RESTful modulaire.
Elle expose des ressources liées aux entités métier suivantes :
- utilisateurs
- restaurants
- tables
- réservations
- horaires d'ouverture
Chaque ressource est accessible via un chemin de type /api/<ressource>
.
Le nommage respecte la convention kebab-case, et les méthodes HTTP utilisées sont conformes aux bonnes pratiques REST : GET
, POST
, PUT
, PATCH
, DELETE
.
L'organisation des fichiers suit un modèle clair avec séparation des routes, contrôleurs et services.
La documentation est en cours de centralisation, mais les principales routes sont déjà définies et utilisables.
Chaque ressource comprend :
- Description de la ressource
- Méthodes disponibles
- Paramètres (query/body/path)
- Exemple de requête
- Exemple de réponse JSON
Description : Gère les comptes utilisateurs (inscription, connexion, suppression)
Méthodes : GET
, POST
, DELETE
Exemple POST :
POST /api/users
Content-Type: application/json
{
"nom": "Dupont",
"prenom": "Jean",
"mail": "[email protected]",
"password": "motdepasse",
"date_naissance": "1990-04-25"
}
Réponse :
{
"id": "123",
"nom": "Dupont",
"prenom": "Jean",
"mail": "[email protected]"
}
Description : Gère les informations des restaurants
Méthodes : GET
, POST
, PUT
, DELETE
Description : CRUD sur les tables d’un restaurant
Méthodes : GET
, POST
, PUT
, DELETE
Description : Réservations de table, annulation, création, historique
Méthodes : GET
, POST
, DELETE
, PATCH
Exemple de création de réservation :
POST /api/reservations
Content-Type: application/json
{
"restaurantId": "abc123",
"utilisateurId": "u456",
"tableId": "t789",
"date": "2025-06-05",
"heure": "20:00"
}
- Visual Studio Code pour l’environnement de développement
- Postman et Thunder Client (VSCode) pour tester les requêtes
- Jest et Supertest pour les tests unitaires des routes
- Docker pour tester l’intégration avec la base de données PostgreSQL
curl -X POST http://localhost:3001/api/users -H "Content-Type: application/json" -d '{
"nom": "Rogier",
"prenom": "Noah",
"mail": "[email protected]",
"password": "test1234",
"date_naissance": "2002-09-01"
}'
Cette requête crée un nouvel utilisateur dans la base de données du projet Tablify.