- Objectif du test
- Présomptions
- Critères
- Outils à utiliser
- Modèle
- Endpoints
- Validation des endpoints
- Soumettre le test
Votre objectif pour ce test est de créer un API Rest avec node.js et express.js pour ajouter et obtenir les joueurs et les informations de l'équipe de Hockey des Canadiens du Montréal. Le but est donc d'avoir la composition de cette équipe pour chaque année ou elle a participé à la Ligue Nationale de Hockey.
- Un GET pour obtenir la composition de l’équipe en fonction de l'année dans la base de données.
- Un POST pour t'ajouter en tant que nouveau joueur de l'équipe d'une année définie dans la base de données.
- Un PUT pour mettre à jour le capitaine de l'equipe pour une année définie.
- Ne vous souciez pas de valider l'entrée de l'utilisateur, vous pouvez présumer que la requête sera toujours valide.
- Il n'est pas nécessaire d'implémenter un mécanisme de sécurité.
- 3 endpoints REST fonctionnels
- Qualité du code
- Utilisation des meilleurs pratiques de développement
- Node.js
- Express.js
- Base de données SQL au choix (mysql, postgresql, mariadb etc..)
- Test unitaire (Optionnel)
- Typescript (Optionnel)
Team
{
"id": 1,
"coach": "Dominique Ducharme"
"year" : 2020
"players": [
{
"number": 99,
"name": "John",
"lastname": "Doe",
"position": "defenseman",
"isCaptain" : false
}
]
}
- Requête: Year dans l'URI
- Réponse: Objet Team (Voir modèle ci-dessus)
- Status: 200 OK
http://localhost:8080/api/team/2020 --header "Content-Type:application/json"
{
"id": 1,
"coach": "Dominique Ducharme"
"year" : 2020
"players": [
{
"number": 99,
"name": "John",
"lastname": "Doe",
"position": "defenseman",
"isCaptain" : false
}
[...]
]
}
- Requête: Objet Joueur dans le body
- Réponse: Objet Joueur crée
- Status: 201 CREATED
http://localhost:8080/api/player/2020 --header "Content-Type:application/json"
{
"number":99,
"name":"Antonin",
"lastname":"Bouscarel",
"position":"forward",
"isCaptain" : false
}
- Requête: ID du joueur dans l'URI
- Réponse: Objet Player
- Status: 200 OK
http://localhost:8080/api/player/9/captain
{
"number":99,
"name":"Antonin",
"lastname":"Bouscarel",
"position":"forward",
"isCaptain" : true
}
Vous pouvez utiliser la collection postman incluse dans le projet si vous désirez valider votre API avec des assertions.
Celle-ci se retrouve dans le dossier postman du projet.
Une fois terminé, veuillez créer un nouveau dépot sur GitHub et l'envoyer par courriel.
Bonne chance et bon game ! 🏒