Was du machst
Eine Datenbank speichert Informationen in Tabellen. Eine Web-API erlaubt es einem Programm, diese Informationen über das Web abzufragen. Du legst eine Tabelle in einer echten Datenbank an. Dann liest und änderst du sie mit Webanfragen, die du mit curl sendest, so wie eine Handy-App mit einem Server spricht.
Bevor du anfängst
Notiz
Drücke oben in der Leiste dieser Lektion auf Lab starten und warte, bis dort steht, dass es läuft. Der erste Start dauert ein paar Sekunden, weil zuerst die Datenbank startet. Jede Schaltfläche Ausführen tippt ihren Befehl in das Terminal deines Labs, einen nach dem anderen in derselben Sitzung. Wenn du zuschauen oder eigene Befehle tippen willst, drücke in der Leiste auf Terminal öffnen (neuer Tab).
1. Lege eine Tabelle an
Die Datenbank heißt shop. Dieser Schritt legt eine Tabelle namens notes mit zwei Spalten an: einer id, die von selbst hochzählt, und dem Text body jeder Notiz. PGPASSWORD ist das Passwort, damit du nicht danach gefragt wirst.
export PGPASSWORD=shopHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
psql -h db -U shop -c "create table notes (id serial primary key, body text not null)"Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
2. Lege eine Notiz hinein
insert fügt eine Zeile hinzu. Der zweite Befehl sagt der API, dass sie die Datenbank noch einmal lesen soll. Die API hat sie einmal beim Start gelesen, bevor notes existierte.
psql -h db -U shop -c "insert into notes (body) values ('hello')"Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
psql -h db -U shop -c "notify pgrst, 'reload schema'"Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
3. Lies sie über das Web
Die API gibt der Tabelle eine Webadresse. curl ruft sie ab, und die Antwort kommt als JSON zurück, ein Textformat, das Programme leicht lesen: [{"id":1,"body":"hello"}]. -w "\n" beendet die Antwort mit einem Zeilenumbruch, damit sie in einer eigenen Zeile unter dem Befehl steht.
curl -s -w "\n" http://api:3000/notesHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
4. Füge über das Web eine Notiz hinzu
Eine POST-Anfrage fügt eine Zeile hinzu. Der Teil nach -d ist die neue Notiz als JSON. Lies dann die Tabelle noch einmal: Es sind zwei Notizen.
curl -s -X POST -H "Content-Type: application/json" -d '{"body":"from curl"}' http://api:3000/notesHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
curl -s -w "\n" http://api:3000/notesHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
5. Frage nach weniger
Wörter, die an die Adresse angehängt werden, fragen nach einem Teil der Tabelle. Diese Anfrage verlangt nur die Notiz, deren body gleich hello ist.
curl -s -w "\n" "http://api:3000/notes?body=eq.hello"Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
6. Sieh, was bleibt
Drücke in der Lab-Leiste auf Lab beenden und dann wieder auf Lab starten, und führe Schritt 3 noch einmal aus: Deine Notizen sind noch da. Die Datenbank legt ihre Dateien in einem benannten Volume ab, und die Plattform speichert das Volume. Alles, was du außerhalb eines Volumes schreibst, geht verloren, wenn das Lab beendet wird. Container im echten Betrieb verhalten sich genauso.
Für Lehrkräfte
Tipp
Diese Lektion ist ein kleines Beispiel für eine Lektion, die in einem Lab bearbeitet wird: Die Schritte und die Schaltflächen „Ausführen“ sind die Lektion, und das Lab ist die eigene Kopie jeder lernenden Person. Das Lab besteht aus zwei Diensten, einer Datenbank und einer API, die sich über ihre Namen finden, so wie eine echte Anwendung aussieht. Kopieren Sie die Lektion in Ihr eigenes Modul und ändern Sie sie, oder bauen Sie mit dem Menü Lab im Lektionseditor eine ganz neue.