Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

API-Grundlagen

Die ganze Lektion steht hier zum Lesen. Erstellen Sie ein kostenloses Konto, um sie in einem Live-Lab auszuführen.

Container-Lab7 Min. Lesezeit8 Befehle

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.

Befehl
export PGPASSWORD=shop

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

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

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

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

Befehl
curl -s -w "\n" http://api:3000/notes

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

Befehl
curl -s -X POST -H "Content-Type: application/json" -d '{"body":"from curl"}' http://api:3000/notes

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Befehl
curl -s -w "\n" http://api:3000/notes

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

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

Mehr in diesem Lab

Über dieses Lab und seinen Quellcode: PostgreSQL-und-PostgREST-Lab: eine Datenbank und eine REST-API im Browser

Sie unterrichten eine Klasse? Weisen Sie diese Lektionen Ihren Lernenden zu, mit Bewertung und einem Lab für jede lernende Person.