Kata : créer une API fonctionnelle avec CRUD sur les différentes tables d'une base de donnée MySQL.
Cet exercice permet de travailler l'intégration de Docker dans un projet, la création et l'utilisation d'une API. L'idée est aussi d'apprendre les différentes méthodes HTTP et de les utiliser.
Ce Kata assume que vous êtes à l'aise avec Git, Docker et Docker-compose.
Forkez ce repo et
créez une branche (git checkout -b username/langage
par exemple git checkout -b nicolasreymond/php
, depuis votre fork). Faites ensuite une pull request pour
l'ajouter à ce repo en vous ajoutant comme contributeur en bas de ce fichier.
À chaque fois qu'il y a un changement dans un fichier docker :
docker-compose up --build
Et pour simplement démarrer les containers docker:
docker-compose up -d
- Forcker le dépot Git
- Créer une nouvelle branche (ex. :
usermame/langage
) - Ajouter un container Docker (pour le langage de votre choix) au docker-compose
- Comprendre comment détecter les types de requêtes HTTP (GET, POST, PUT, PATCH, DELETE)
- Mise en place du CRUD pour l'endpoint
/beer*
- Mise en place du
C
reate
- Mise en place du
R
ead
- Mise en place du
U
pdate
- Mise en place du
D
elete
- Mise en place du
- Mise en place de la lecture des endpoints
/breweries
,/categories
et/styles
- Tester l’API avec postman, curl, httpie, etc… et indiquer ces requêtes dans un fichier de résultats
- Faire une page qui documente l'utilisation de l’API (avec un example de requête pour chaques commandes)
Pour aller plus loin
- Se poser des questions sur la pagination dans le cas de résultats importants, par exemple en utilisant le HEADER et le méthode HTTP HEAD
- Intégration de swagger dans le langage choisi
Endpoint | Résultat | Méthode |
---|---|---|
/beers |
Affiche toutes les bières | GET |
/beer |
Ajouter une bière | POST |
/beer/{id} |
Affiche la bière qui à l'id {id} |
GET |
/beer/{id} |
Supprimer une bière | DELETE |
/beer/{id} |
Modifier une bière | PUT |
/beer/{id} |
Modifier partiellement une bière | PATCH |
/breweries |
Affiche toutes les brasseries | GET |
/breweries/{id} |
Affiche la brasserie {id} |
GET |
/categories |
Affiche toutes les catégories | GET |
/categories/{id} |
Affiche la catégorie {id} |
GET |
/styles |
Affiche toutes les styles | GET |
/styles/{id} |
Affiche le style {id} |
GET |