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

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

Labo de conteneurs8 min de lecture8 commandes

Ce que tu vas faire

Une base de données garde des informations dans des tables. Une API web permet à un programme de demander ces informations par le web. Tu crées une table dans une vraie base de données. Ensuite, tu la lis et tu la modifies avec des requêtes web envoyées par curl, comme une application de téléphone qui parle à un serveur.

Avant de commencer

Remarque

Appuie sur Démarrer le lab dans la barre en haut de cette leçon et attends que la barre indique que le lab tourne. Le premier démarrage prend quelques secondes, parce que 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 tes propres commandes, appuie sur Ouvrir le terminal (nouvel onglet) dans la barre.

1. Crée une table

La base de données s’appelle shop. Cette commande crée une table nommée notes, avec deux colonnes : un id qui augmente tout seul, et le texte body de chaque note. PGPASSWORD contient le mot de passe, donc on ne te le demande pas.

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 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.

2. Mets une note dedans

insert ajoute une ligne. La deuxième commande dit à l’API de relire la base de données. L’API l’a lue une seule fois, au démarrage, avant que notes existe.

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

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.

3. Lis-la par le web

L’API donne une adresse web à la table. curl la demande, et la réponse revient en JSON, un format de texte que les programmes lisent facilement : [{"id":1,"body":"hello"}]. -w "\n" termine la réponse par un saut de ligne, pour qu’elle s’affiche seule sur sa ligne sous la commande.

Commande
curl -s -w "\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.

4. Ajoute une note par le web

Une requête POST ajoute une ligne. La partie -d est la nouvelle note, en JSON. Ensuite, lis à nouveau la table : il y a maintenant deux notes.

Commande
curl -s -X POST -H "Content-Type: application/json" -d '{"body":"from curl"}' 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 -w "\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.

5. Demande moins

Des mots ajoutés à l’adresse demandent une partie de la table. Cette requête demande seulement la note dont le body est égal à hello.

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

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.

6. Vois ce qui est conservé

Appuie sur Arrêter le lab dans la barre du lab, puis sur Démarrer le lab, et exécute à nouveau l’étape 3 : tes notes sont toujours là. La base de données garde ses fichiers dans un volume nommé, et la plateforme sauvegarde ce volume. Tout ce que tu écris en dehors d’un volume est perdu quand le lab s’arrête. Les conteneurs en production se comportent de la même façon.

Pour les enseignants

Astuce

Cette leçon est un petit exemple de leçon à faire dans un lab : les étapes et les boutons Exécuter forment la leçon, et le lab est la copie personnelle de chaque élève. Le lab se compose de deux services, une base de données et une API, qui se trouvent par leur nom : c’est à quoi ressemble une vraie application. Copiez cette leçon dans votre propre module et modifiez-la, ou créez-en une à partir de zéro avec le menu Lab du créateur de leçons.

À 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.