Le laboratoire aura lieu dans le local PK-S1575
Assurez-vous de rejoindre le projet de session sur Github Classroom.
- Créer un compte Github si ce n'est déjà pas le cas.
- Rendez-vous sur la page du projet de session : https://classroom.github.com/g/oH9-4nj2
- Acceptez le travail, et identifier vous dans la liste en choisissant votre code permanent Assurez-vous de ne pas prendre le code de quelqu'un d'autre!
- Créer une équipe individuelle, ou rejoignez l'équipe de votre collègue si vous faites la remise à 2.
- Votre dépôt Github privé sera créé, vous pouvez commencer à l'utiliser.
Modéliser les routes, méthodes HTTP et un exemple de données JSON d'une API REST qui représente l'emprunt de livres à un bibliothèque.
Les ressources sont :
- Un livre
- Un membre de la bibliothèque
- Les emprunts
Voici les routes à définir, avec deux exemples.
-
Créer un nouveau livre
POST https://api.example.com/bibliotheque/livre/
{ "livre": { "titre": "Release It!", "auteur": [ "Michael T. Nygard" ], "edition": 2018, "copies": 3 } }
-
Récupérer les emprunts d'un livre
GET https://api.example.com/bibliotheque/livre/10/emprunts
{ "emprunt": { "id": 42, "livre_id": 10, "membre_id": 25, "date_emprunt": "2019-09-25", "date_retour_prevu": "2019-10-02", "date_retour": null, } }
-
Créer un nouveau membre de la bibliothèque (avec nom, prénom, courriel)
-
Récupérer la liste des emprunts d'un livre
-
Récupérer la liste des livres actuellement empruntés par un membre
-
Étendre la date de retour prévu d'un livre emprunté par un membre
-
Marquer un livre comme retourné (ne pas supprimer l'emprunt)
-
Récupérer les membres qui ont un livre spécifique d'emprunté
-
Supprimer un livre
Dans le dossier flask, il y a une application Flask représentant des comptes bancaires.
Si vous ne l'avez pas déjà d'installer, il faut installer peewee avec
pip install peewee
- Initialiser la base de donnée avec
FLASK_DEBUG=1 python -m flask init-db
- Rouler l'application avec
FLASK_DEBUG=1 python -m flask run
L'objectif de cet exercice est de créer des requêtes manuelles pour interagir avec un API REST.
Il existe plusieurs outils, tel que les lignes de commandes cURL
, HTTPie. Pour cet exercice, je vais utiliser
Postman`.
- Installer
Postman
localement à partir de l'adresse suivante : https://www.getpostman.com/downloads/ - Ouvrer le logiciel. Il va vous demander de vous créer un compte. Vous pouvez aussi utiliser l'option de vous connecter avec votre compte Google si vous en avez un.
- À partir de Postman, tappez l'adresse de l'application flask du labo
http://127.0.0.1:5000
et appuyez sur Send - Vous remarquerez que ça retourne un 404. C'est normal, il n'y a aucune route d'index de définit!
- Faites la même chose, mais pour l'adresse
http://127.0.0.1:5000/accounts
. Ça devrait vous retourner une liste JSON vide car il n'y a aucun compte encre. - Pour créer un compte, on va faire un POST de type JSON à
http://127.0.0.1:5000/accounts
. Le contenu du JSON sera :
{
"account": {
"owner": "Toto Foobar",
"current_balance": 1000
}
}
7. Appuyer sur
Send
, et la requête va être envoyé à l'application Web. La réponse vous sera affiché.
-
Avec l'outils de votre choix, créer un autre compte appartenant à
John Smith
et avec une balance de 500 -
Créer une transaction à partir du premier compte vers le deuxième compte pour un montant de 100:
POST /transactions
{ "transaction": { "from_account": 1, "to_account": 2, "amount": 500 } }
-
Récupérer toutes les transactions avec(erreur de ma part, il n'existe pas d'actionsGET /transactions
GET /transactions
-
Récupérer une seule transaction avec
GET /transactions/<int:id>
oùid
représente la dernière transaction (c'est surement1
) -
Récupérer toutes les transactions d'un compte avec
GET /accounts/<int:account_id>/transactions
(account_id est surement1
) -
Allez voir les autres routes disponible dans flask/app.py et testez les!