Plus facile à lire avec un fond crème, une teinte, plus de contraste ou un texte plus grand ? Choisissez vos couleurs et votre texte, une fois pour toutes les pages.

Leçon gratuite

Les bases des API 2 : modifier et supprimer

La leçon complète est à lire ici. Créez un compte gratuit pour la pratiquer dans un labo en direct.

Labo de conteneurs10 min de lecture11 commandes

Ce que tu vas faire

Dans « Les bases des API », tu as lu des notes et tu en as ajouté. Une API web fait quatre choses avec les données : créer, lire, modifier et supprimer, chacune par un autre type de requête. Ici, tu fais modifier et supprimer : changer une note et en supprimer une. Tu regardes aussi le code de statut que l’API renvoie à chaque fois : un nombre qui dit comment ça s’est passé.

Avant de commencer

Remarque

Appuie sur Démarrer le lab dans la barre en haut de la leçon et attends qu’elle indique que le lab tourne. Le premier démarrage prend quelques secondes, car la base de données démarre d’abord. Chaque bouton Exécuter ci-dessous tape sa commande dans le terminal de ton lab, l’une après l’autre, dans la même session. Pour les voir passer, ou pour taper les tiennes, appuie sur Ouvrir le terminal (nouvel onglet) dans la barre.

1. Vérifier qu’il y a des notes à modifier

Ces commandes créent la table notes si « Les bases des API » ne l’a pas déjà fait, y mettent deux notes, et disent à l’API de relire la base. Si tu as fait la première leçon, la table existe déjà : psql te le dit avec un NOTICE, mais il continue et ajoute deux notes de plus. Ce n’est pas grave. ?order=id liste les notes dans l’ordre de leur id, et -w "\n" termine la réponse par un retour à la ligne pour qu’elle s’affiche sous la commande.

Commande
export PGPASSWORD=shop

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Commande
psql -h db -U shop -c "create table if not exists notes (id serial primary key, body text not null)"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Commande
psql -h db -U shop -c "insert into notes (body) values ('one'), ('two')"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Commande
psql -h db -U shop -c "notify pgrst, 'reload schema'"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Commande
curl -s -w "\n" "http://api:3000/notes?order=id"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

2. Modifier une note

Une requête PATCH change une partie d’une ligne. ?id=eq.1 dit laquelle : la ligne dont l’id est égal à 1. L’API répond 204, ce qui veut dire « c’est fait, et il n’y a rien à renvoyer ». Relis la table : la note a changé.

Commande
curl -s -o /dev/null -w "%{http_code}\n" -X PATCH -H "Content-Type: application/json" -d '{"body":"changed"}' "http://api:3000/notes?id=eq.1"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Commande
curl -s -w "\n" "http://api:3000/notes?id=eq.1"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

3. Supprimer une note

Une requête DELETE supprime les lignes qui correspondent, ici celle dont l’id est 2. Encore 204. Relis la table : la note a disparu.

Commande
curl -s -o /dev/null -w "%{http_code}\n" -X DELETE "http://api:3000/notes?id=eq.2"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Commande
curl -s -w "\n" "http://api:3000/notes?order=id"

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

4. Lire les codes de statut

Chaque réponse commence par un code de statut. 200 veut dire « voilà », 201 « je l’ai créé », 204 « c’est fait » et 404 « cela n’existe pas ». Demande une table qui n’existe pas et tu obtiens un 404 ; demande celle qui existe et tu obtiens un 200.

Commande
curl -s -o /dev/null -w "%{http_code}\n" http://api:3000/notes

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Commande
curl -s -o /dev/null -w "%{http_code}\n" http://api:3000/nothing

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Pour les enseignants

Astuce

Cette leçon est un petit exemple de leçon travaillée dans un lab : les étapes et les boutons Exécuter sont la leçon, et le lab est la copie personnelle de chaque élève. Elle utilise le même lab base de données et API que « Les bases des API ». La base garde ses fichiers dans un volume que la plateforme sauvegarde : les notes de l’élève sont donc encore là la fois suivante. Copiez-la dans votre propre module et modifiez-la, ou créez-en une de zéro avec le menu Lab du créateur de leçons.

Plus dans ce labo

À propos de ce labo et de sa source: Lab PostgreSQL et PostgREST : une base de données et une API REST dans le navigateur

Vous enseignez à une classe ? Proposez ces leçons à vos élèves avec correction et un labo pour chaque élève.