PostgreSQL-und-PostgREST-Lab: eine Datenbank und eine REST-API im Browser
Dieses Lab gibt jeder lernenden Person eine eigene PostgreSQL-Datenbank und ein eigenes PostgREST, das jede Tabelle der Datenbank in eine REST-API verwandelt. Ein Terminal neben beiden hat psql und curl, sodass die Lernenden eine Tabelle in SQL anlegen und sie dann über HTTP lesen und beschreiben.
Es besteht aus einer einzigen Compose-Datei und läuft auch auf Ihrem eigenen Rechner.
Was die Lernenden lernen
Eine Tabelle anlegen und eine Datenbank über ihren Dienstnamen ansprechen, so wie Dienste einander im Produktivbetrieb finden. Zeilen über eine REST-API mit curl lesen und schreiben, einschließlich Filtern und Sortieren. Was einen Neustart überlebt und was nicht: Die Datenbank hält ihre Dateien in einem benannten Volume, die Notizen sind also beim nächsten Mal noch da, während eine Datei, die außerhalb eines Volumes geschrieben wurde, verschwindet, sobald das Lab stoppt. Sichern mit pg_dump und Wiederherstellen aus der Datei.
Im Browser ausführen
Probieren Sie es zuerst selbst aus. Das Passwort für den Datenbankbenutzer shop ist shop.
- Die Container-Seite öffnen. Öffnen Sie in der Leiste „Entwickeln“ und wählen Sie „Einen Container ausführen“. Die Seite steht jedem offen, und das Git-Lab und das SQL-Lab starten ohne Konto. Alle anderen Labs brauchen ein kostenloses Konto: Erstellen Sie eines, melden Sie sich an und klicken Sie dann auf „Starten“.
- Das Lab finden. Die Karte „Beispiel-Labs“ listet alle Beispiele auf. Suchen Sie die Datenbank mit einer Web-API.
- Auf „Starten“ klicken. „Starten“ führt das Lab unverändert mit einem Klick aus. „Zuerst die Datei bearbeiten“ öffnet die Compose-Datei, damit Sie sie vor dem Start ändern können.
- Öffnen. Klicken Sie auf der Seite des Labs unter „In Ihrem Browser“ auf „Eine Web-API über jeder Tabelle“ und hängen Sie /notes an die Adresse an, sobald Sie die Tabelle angelegt haben. Im Terminal öffnet psql -h db -U shop die Datenbank, und curl http://api:3000/notes ruft die API auf.
Der Code auf GitHub
Das ganze Lab ist eine einzige Compose-Datei in einem öffentlichen Repository, das auch die Lektion enthält, für die es geschrieben wurde, Schritt für Schritt. Es läuft auch auf Ihrem eigenen Rechner: docker compose up. Erstellen Sie einen Fork, um es zu Ihrem eigenen zu machen.
Eine Grundlagenlektion zu diesem Lab
API Basics und API Basics 2 sind kleine Lektionen, die in dieses Lab eingearbeitet sind. Jeder Schritt ist erklärt und hat eine Schaltfläche „Ausführen“, die den Befehl in das eigene Terminal der lernenden Person tippt. In API Basics legen sie eine Tabelle an, tragen eine Notiz ein, lesen sie mit curl über das Web und fügen mit einer POST-Anfrage eine weitere hinzu. In API Basics 2 ändern sie eine Notiz, löschen eine und lesen die Statuscodes, mit denen die API antwortet.
Ein kostenloses persönliches Konto erhält sie im Modul „Basics“, das auf der Startseite liegt. Jede Einrichtung kann sie aus dem Ordner „Basics“ der Bibliothek kopieren, und eine neue Einrichtung startet mit ihnen in einem Modul namens Lab Basics (Sample). Sie sind bewusst klein: Sie zeigen Lehrkräften, was eine in ein Lab eingearbeitete Lektion ist, und das Lab erledigt den Rest. Kopieren Sie eine in ein eigenes Modul, um sie zu ändern.
Als Aufgabe stellen
Um es einer Klasse zu geben, erstellen Sie aus dem Repository ein eigenes Lab.
- Das Lab anlegen. Fügen Sie in Ihrem Modul eine Aufgabe hinzu, wählen Sie die Karte „Container-Lab“ und dann „In einem GitHub-Repository“. Geben Sie https://github.com/mitsurutech/lab-sample mit dem Branch main an. Die Compose-Datei ist standardmäßig compose.yaml. Erstellen Sie zuerst einen Fork des Repositorys, wenn Sie es ändern möchten.
- Veröffentlichen und ausprobieren. „Veröffentlichen“ legt den Commit fest, den Ihnen die Seite angezeigt hat. Eine spätere Änderung im Repository verändert also kein Lab, das Sie bereits zugewiesen haben. Starten Sie zuerst Ihre eigene Kopie.
- Zuweisen. Weisen Sie es wie jede Aufgabe zu, auf Wunsch mit Fälligkeitsdatum, und schreiben Sie in die Aufgabe, was zu tun ist und was abgegeben werden soll.
- Abgaben bewerten. Öffnen Sie die Kopie einer lernenden Person und die abgegebene Arbeit, bewerten Sie sie und geben Sie sie mit einer Begründung zur Überarbeitung zurück, wenn mehr nötig ist.
Häufige Fragen
- Was ist PostgREST?
- Ein kleiner Server, der eine Postgres-Datenbank liest und jede Tabelle in REST-Endpunkte verwandelt. So sehen die Lernenden, wie eine Datenbank hinter einer Web-API sitzt, ohne selbst eine zu schreiben. Das Lab führt es für jede lernende Person neben ihrem eigenen Postgres aus.
- Bleiben die Daten zwischen den Sitzungen erhalten?
- Ja. Die Datenbank hält ihre Dateien im benannten Volume pgdata, das die Plattform speichert, ebenso wie den Home-Ordner der lernenden Person. Alles außerhalb eines Volumes ist weg, sobald das Lab stoppt, so wie sich Container im Produktivbetrieb verhalten.
- Wie verbinden sich die Lernenden in diesem Lab mit der Datenbank und der API?
- Im Terminal öffnet psql -h db -U shop die Datenbank, mit dem Passwort shop, und curl http://api:3000/notes liest die Tabelle notes, sobald sie existiert. Beide werden über ihren Dienstnamen angesprochen, so wie Dienste einander im Produktivbetrieb finden.