Was du machst
In den API-Grundlagen hast du Notizen gelesen und hinzugefügt. Eine Web-API macht vier Dinge mit Daten: erstellen, lesen, ändern und löschen. Jedes ist eine andere Art von Anfrage. Hier machst du ändern und löschen: Du änderst eine Notiz und löschst eine. Dazu siehst du den Statuscode, mit dem die API jedes Mal antwortet. Das ist eine Zahl, die sagt, wie es gelaufen ist.
Bevor du anfängst
Notiz
Klicke 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 unten tippt ihren Befehl ins Terminal deines Labs, einen nach dem anderen in derselben Sitzung. Wenn du zuschauen oder eigene Befehle tippen willst, klicke in der Leiste auf Terminal öffnen (neuer Tab).
1. Sorge dafür, dass es Notizen zum Ändern gibt
Diese Befehle legen die Tabelle notes an, falls die API-Grundlagen das nicht getan haben. Sie tragen zwei Notizen ein und sagen der API, dass sie die Datenbank neu lesen soll. Wenn du die erste Lektion gemacht hast, gibt es die Tabelle schon. psql meldet das mit einem NOTICE, macht weiter und fügt zwei weitere Notizen hinzu. Das ist in Ordnung. ?order=id listet die Notizen nach ihrer id auf. -w "\n" beendet die Antwort mit einer neuen Zeile, damit sie unter dem Befehl steht.
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 if not exists 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.
psql -h db -U shop -c "insert into notes (body) values ('one'), ('two')"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.
curl -s -w "\n" "http://api:3000/notes?order=id"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. Ändere eine Notiz
Eine PATCH-Anfrage ändert einen Teil einer Zeile. ?id=eq.1 sagt, welche: die Zeile, deren id gleich 1 ist. Die API antwortet 204. Das heißt: „Erledigt, und es gibt nichts zurückzuschicken.“ Lies die Tabelle noch einmal, dann ist die Notiz geändert.
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"Hier 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/notes?id=eq.1"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. Lösche eine Notiz
Eine DELETE-Anfrage entfernt die passenden Zeilen, hier die mit der id 2. Wieder 204. Lies die Tabelle noch einmal, dann ist sie weg.
curl -s -o /dev/null -w "%{http_code}\n" -X DELETE "http://api:3000/notes?id=eq.2"Hier 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/notes?order=id"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. Lies die Statuscodes
Jede Antwort beginnt mit einem Statuscode. 200 heißt „Hier ist es“, 201 „Ich habe es angelegt“, 204 „Erledigt“ und 404 „So etwas gibt es nicht“. Fragst du nach einer Tabelle, die es nicht gibt, bekommst du 404. Fragst du nach der, die es gibt, bekommst du 200.
curl -s -o /dev/null -w "%{http_code}\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.
curl -s -o /dev/null -w "%{http_code}\n" http://api:3000/nothingHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Für Lehrkräfte
Tipp
Diese Lektion ist ein kleines Beispiel für eine Lektion, die in einem Lab abläuft: Die Schritte und die Schaltflächen „Ausführen“ sind die Lektion, und das Lab ist die eigene Kopie jeder lernenden Person. Sie nutzt dasselbe Datenbank-und-API-Lab wie die API-Grundlagen. Die Datenbank legt ihre Dateien in einem Volume ab, das die Plattform sichert, daher sind die Notizen beim nächsten Mal noch da. Kopiere die Lektion in dein eigenes Modul und ändere sie, oder baue im Lektionseditor über das Menü Lab eine neue von Grund auf.