APIs verstehen und mit KI-Agenten verwenden
Einleitung
Zielgruppe: Auszubildende im 1. bis 2. Ausbildungsjahr. Voraussetzungen: Dateien und Einheiten verstehen; Programmierkenntnisse sind nicht nötig. Zeitbedarf: etwa 5–7 Unterrichtseinheiten mit Wahlvertiefungen.
Du erstellst ein lesendes Lernprodukt: einen kleinen Client, der synthetische Prüfwerte eines ungefährlichen Lehrbauteils ausschließlich von einem lokalen Testdienst abfragt. Am Ende zeigst du anhand eigener Tests, dass die Anwendung bei einer Zeitüberschreitung, beschädigtem JSON und wiederholten Fehlern kontrolliert reagiert. Kein Maschinenzugang, keine reale Steuerung, keine Sicherheitsfreigabe. Das Angebot ist unabhängig; es ist weder eine offizielle Liebherr-Schulung noch eine IHK-Zertifizierung.
Aktivierung der Grundlage: Der vorhandene Einstieg MOOCwiki-Grundlage wird hier nur kurz aufgegriffen: Dateien speichern, Zahlen und Einheiten unterscheiden, Eingaben und Ausgaben benennen. Der Seiteninhalt war zum Recherchezeitpunkt nicht zuverlässig abrufbar; deshalb behauptet dieser Kurs keine dortigen Einzelaussagen. Schätze vorab ein: Was ist eine Datei? Was unterscheidet 23,4 von 23,4 mm? Wie erkennst du einen Fehler?
Dein Lernweg: verstehen → angeleitet beobachten → lokal erproben → Fehler gezielt provozieren → selbstständig entscheiden und begründen. Alle Beispiele sind erfunden und offline mit lokal installierbarem Python oder auf Papier bearbeitbar; kein bezahltes KI-Konto erforderlich.
Schnittstellen, HTTP und REST lesen
Eine API ist ein vereinbarter Datenweg
Eine API (Application Programming Interface, Programmierschnittstelle) legt fest, welche Daten oder Funktionen ein anderes Programm anfragen darf und wie die Antwort aussieht. Der Client fragt an; der Server beantwortet die Anfrage. Die Schnittstellenbeschreibung vereinbart Pfade, erlaubte Methoden, Felder, Einheiten und Fehlermeldungen. Eine KI kann beim Formulieren einer Anfrage helfen, aber sie kennt nicht automatisch den wirklichen Vertrag: Du prüfst jede Annahme gegen die Dokumentation.

Bild: Anfrage und Antwort im Client-Server-Modell; Lubaochuan, CC BY-SA 4.0. Ohne Bild: Der Client stellt eine Frage, der Server liefert Daten oder einen Fehler zurück.
Eine HTTP-Nachricht entschlüsseln
HTTP ist ein Kommunikationsprotokoll. Eine Anfrage enthält unter anderem Methode (beispielsweise GET), Pfad (beispielsweise /api/v1/werte), optionale Header und manchmal einen Body (Inhalt). Eine Antwort besteht aus Statuscode, Headern und gegebenenfalls einem Body. GET ist für lesende Abfragen vorgesehen; POST übermittelt typischerweise neue Daten zur Verarbeitung. Unsere Schulübung verwendet nur GET.
Beispiel aus dem lokalen, erfundenen Dienst:
GET /api/v1/werte HTTP/1.1
Host: 127.0.0.1:8765
Accept: application/json
HTTP/1.1 200 OK
Content-Type: application/json
{"bauteil":"LEHR-01","wert":23.4,"einheit":"mm"}
127.0.0.1 bezeichnet den eigenen Rechner (Loopback); Port 8765 ist eine lokale Anschlussnummer. 200 bedeutet erfolgreiche Bearbeitung, 404 nicht gefunden, 503 vorübergehend nicht verfügbar. 408 ist ein HTTP-Status, während eine lokale Client-Zeitüberschreitung auch ohne HTTP-Antwort entstehen kann. Verwechsle diese beiden Fehler nicht.

Bild: Bestandteile einer HTTP-Anfrage und Antwort; Sébastien Santoro/Dereckson und Kulandru mor, gemeinfrei. Ohne Bild: Methode und Pfad stehen in der Anfrage, Status und Inhalt in der Antwort.
REST: Ressourcen statt magische Befehle
REST ist ein Architekturstil für verteilte Systeme, kein eigenes Datenformat. Eine Ressource ist über eine Adresse erreichbar; eine Repräsentation beschreibt sie. REST strebt unter anderem eine einheitliche Schnittstelle und zustandslose Interaktionen an. Nicht jede HTTP-API erfüllt alle REST-Bedingungen. Unsere einfache Übungs-API orientiert sich an REST: GET /api/v1/werte liefert Messwerte; eine alternative Rückgabe kann einen Fehlerstatus besitzen. Version v1 im Pfad kennzeichnet hier eine vereinbarte Schnittstellenversion, keine allgemeine Pflicht.
Mini-Kontrolle: Markiere im Beispiel die Methode, den Pfad, den Statuscode und die Einheit. Erkläre einem Lernpartner, warum eine GET-Abfrage keine Maschine starten darf.
Strukturierte Daten und sichere Abfragen
JSON verstehen und prüfen
JSON (JavaScript Object Notation) ist ein textbasiertes Format für strukturierte Daten. Ein Objekt verwendet Schlüssel und Werte; Texte stehen in doppelten Anführungszeichen, Zahlen nicht. Eine Liste steht in eckigen Klammern. JSON ist nur ein Format, kein Beweis für die Richtigkeit eines Messwerts.
{
"bauteil": "LEHR-01",
"wert": 23.4,
"einheit": "mm",
"status": "synthetisch"
}
Prüfe in dieser Reihenfolge: (1) Ist die Antwort erfolgreich? (2) Ist sie syntaktisch gültiges JSON? (3) Sind erwartete Felder vorhanden und haben sie den richtigen Typ? (4) Ist die Einheit erlaubt? (5) Ist der Wert plausibel? Syntaxprüfung und Fachprüfung sind verschiedene Schritte: Der Text {"wert":"viel"} kann formal gültiges JSON sein, obwohl er keinen verwendbaren Zahlenwert enthält.

Bild: Web-API überträgt strukturierte Antwort; I.hate.spam.mail.here, CC0 1.0. Ohne Bild: Der Server gibt nach einer Anfrage ein JSON-Objekt an den Client zurück.

Bild: JSON-Wortbildmarke, Douglas Crockford zugeschrieben, einfache Formen als gemeinfrei gekennzeichnet; Logo ist keine Qualitätsgarantie.
Sicherheit begrenzt die Befugnis des Clients
Der Lehr-Client darf nur einen festen lokalen Host und die im Unterricht freigegebenen GET-Endpunkte ansprechen. Das ist Allowlisting: Nur vorher festgelegte Ziele sind erlaubt. Nutze synthetische Werte, keine realen Zugangsdaten oder personenbezogenen Messdaten. Prüfe auch bei vermeintlich vertrauenswürdigen KI-Ausgaben Pfad, Methode, erlaubte Aktion, Datentypen und Folgen. Eine KI kann irrtümlich einen Schreibaufruf vorschlagen, ohne dafür befugt zu sein.
Für echte externe Dienste wären unter anderem angemessene Authentifizierung, Transportverschlüsselung, Berechtigungen, Datenminimierung und Protokollierung zu prüfen; diese lokale Übung benötigt keine Tokens. MCP kann KI-Anwendungen mit Werkzeugen verbinden; dabei gelten zusätzliche Risiken wie übertragene Berechtigungen, Angriffe auf lokale Dienste und unzulässige Weiterleitung von Tokens. Dieser Kurs benutzt MCP nur als Recherche- und Reflexionsthema, nicht als Verbindung zu Maschinen.
Medieneinstieg mit Alternative
Deutschsprachiges Lernvideo zu JSON:
Programmieren Starten, „Was ist JSON? Einfach und schnell erklärt!“, veröffentlicht 18.11.2019. Die Metadaten sind recherchiert; eine durchgehende Wiedergabe konnte nicht unabhängig getestet werden. Rechte am Video verbleiben beim Urheber; keine OER-Lizenz behauptet. Alternative ohne Video: Lies die beiden JSON-Beispiele, unterstreiche Schlüssel und markiere Zahlenwerte.
Geführter Modellfall: Lokaler Messdaten-Testdienst
Die Lernaufgabe und der Vertrag
Ein rein erfundenes Kunststoff-Lehrbauteil trägt die Kennung LEHR-01. Sein synthetischer Testwert beträgt 23,4 mm; er darf niemals mit einem realen Prüfprotokoll verwechselt werden. Du arbeitest ausschließlich auf deinem eigenen Computer. Ein bereits eingerichteter lokaler Dienst kann mit vier GET-Pfaden antworten:
| Lokaler Pfad | Erwartete Antwort | Geplanter Test |
|---|---|---|
| /api/v1/werte | Status 200, gültiges JSON mit 23,4 mm | Normalfall |
| /api/v1/ungueltig | Status 200, beschädigter JSON-Text | Parsingfehler |
| /api/v1/langsam | Antwort nach 2 Sekunden | Timeout bei Limit 1 Sekunde |
| /api/v1/nichtbereit | Status 503 | Vorübergehend nicht verfügbar |
Lehrvertrag v1: Der Client kennt ausschließlich den Host 127.0.0.1 und Port 8765, fordert die oben definierten Daten über GET an, nutzt ein Zeitlimit von 1 Sekunde, wiederholt nur begrenzt und meldet jeden Abbruch. Ein Status 200 allein gilt nicht als fachlicher Erfolg. Der sichtbare Messwert ist niemals eine Freigabe.
Schrittfolge ohne Programmierkenntnisse
- Anforderung: Zeichne vier Kästchen: Client → GET-Anfrage → lokaler Dienst → Antwort. Beschrifte den erlaubten Datenfluss.
- Datensatz: Schreibe drei Spalten auf: Feld, Typ, erwartete Bedeutung. Beispiel „wert – Zahl – synthetische Länge“.
- Testfall: Ziehe für jeden Pfad eine Karte. Notiere vorher erwartete Reaktion und danach beobachtete Reaktion. Ohne Computer darfst du vorgegebene Antwortkarten verwenden.
- Fehlerbehandlung: Schreibe einen Wenn-dann-Satz je Fall: Bei Timeout abbrechen oder nur begrenzt erneut lesen; bei defektem JSON keine Zahl ausgeben; bei wiederholtem 503 endgültig stoppen.
Optional: Lokalen Testdienst selbst starten
Wenn Python 3 bereits auf dem Schulrechner installiert ist, speichere folgenden öffentlichen Lehrbeispielcode ohne Echtdaten als dienst.py. Er verwendet nur die Python-Standardbibliothek. Eine Lehrkraft kann ihn vorher freigeben; andernfalls bleiben die Kartenübungen vollständig nutzbar.
from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer
import json
import time
class Dienst(BaseHTTPRequestHandler):
def do_GET(self):
if self.path == "/api/v1/langsam":
time.sleep(2)
if self.path == "/api/v1/nichtbereit":
status, body = 503, b'{"fehler":"nicht bereit"}'
elif self.path == "/api/v1/ungueltig":
status, body = 200, b'{"wert":23.4,'
elif self.path in ("/api/v1/werte", "/api/v1/langsam"):
status = 200
body = json.dumps({
"bauteil": "LEHR-01", "wert": 23.4,
"einheit": "mm", "status": "synthetisch"
}).encode("utf-8")
else:
status, body = 404, b'{"fehler":"unbekannt"}'
try:
self.send_response(status)
self.send_header("Content-Type", "application/json")
self.send_header("Content-Length", str(len(body)))
self.end_headers()
self.wfile.write(body)
except (BrokenPipeError, ConnectionResetError):
pass
ThreadingHTTPServer(("127.0.0.1", 8765), Dienst).serve_forever()
Starte ihn lokal mit „python dienst.py“ beziehungsweise „python3 dienst.py“ und halte das Terminal geöffnet. Der Dienst ist nur an die Loopback-Adresse gebunden und implementiert keine POST-, PUT- oder DELETE-Funktion. Beende ihn mit Strg+C. Wichtig: Vor dem Start fremder Codes gelten lokale Schul- und IT-Regeln; kein externer Server ist Teil dieser Aufgabe.
Prüfprotokoll mit konkreten Erwartungen
| Fall | Erwartung | Warum? |
|---|---|---|
| Normalfall | 200 + JSON + Zahl 23,4 mm; als „synthetisch“ markieren | Transport, Struktur und fachliches Schema passen |
| Timeout | Nach höchstens etwa 1 s pro Versuch kontrollierter Fehler; maximal zwei Versuche | Ein Hänger blockiert die App nicht unbegrenzt |
| Ungültiges JSON | Parsingfehler melden, keine Zahl anzeigen, nicht blind wiederholen | Eine Wiederholung repariert keine sicher bekannte Formatverletzung |
| Dauerhaft 503 | Maximal zwei Leseversuche, dann „Dienst nicht bereit“ | Begrenzte Wiederholung schont Ressourcen |
Die gemessene Gesamtdauer kann geringfügig über der Summe der Zeitlimits liegen, weil Planung, Rückgabe und Pausen Zeit benötigen. Ein Zeitlimit gilt für die jeweiligen Netzoperationen, nicht automatisch als harte Gesamtdauer aller Arbeitsschritte.
Lesenden Client entwickeln und testen
Drei Fehlerregeln statt endloser Versuche
Timeout: Der Client wartet nicht grenzenlos. Ungültiges JSON: Der Client darf trotz HTTP 200 keine Messzahl erfinden und muss den Unterschied zwischen erfolgreichem Transport und fehlerhaftem Inhalt zeigen. Wiederholungsgrenze: Wiederhole bei dieser Leseschnittstelle höchstens einmal nach dem ersten fehlgeschlagenen Versuch, also insgesamt höchstens zwei Versuche. Wiederhole nur festgelegte vorübergehende Fehler (Zeitüberschreitung oder 503); nicht 404, nicht beschädigtes JSON und nicht Schemafehler. In produktiven Anwendungen kommen Backoff, Jitter, serverseitige Hinweise, Idempotenz und Gesamtbudgets hinzu. Die hier gezeigte kurze Pause ist eine didaktische Vereinfachung, keine universelle Wiederholungsstrategie.
Optional: Ein ausführbarer Python-Client
Speichere als client.py. Der erlaubte Pfad wird intern aus einer festen Auswahl gewählt. Nutze zum Wechseln zwischen den vier Fällen ausschließlich die Variable FALL. Der Code hat keine Schnittstelle für eine frei von KI eingegebene Adresse.
import json
import math
import socket
import time
import urllib.error
import urllib.request
PFADE = {
"normal": "/api/v1/werte",
"timeout": "/api/v1/langsam",
"json": "/api/v1/ungueltig",
"dienst": "/api/v1/nichtbereit"
}
FALL = "normal"
URL = "http://127.0.0.1:8765" + PFADE[FALL]
MAX_VERSUCHE = 2
for versuch in range(1, MAX_VERSUCHE + 1):
try:
anfrage = urllib.request.Request(
URL, method="GET",
headers={"Accept": "application/json"}
)
with urllib.request.urlopen(anfrage, timeout=1.0) as r:
roh = r.read(4096)
if r.read(1):
raise ValueError("Antwort zu gross")
daten = json.loads(roh.decode("utf-8"))
if not isinstance(daten, dict):
raise ValueError("JSON-Objekt erwartet")
wert = daten.get("wert")
if (type(wert) not in (int, float)
or not math.isfinite(wert)
or daten.get("einheit") != "mm"
or daten.get("status") != "synthetisch"
or daten.get("bauteil") != "LEHR-01"):
raise ValueError("Unpassendes Datenschema")
print("Synthetischer Lehrwert:", wert, "mm")
break
except json.JSONDecodeError:
print("STOPP: Ungueltiges JSON, keine Zahl ausgeben")
break
except (UnicodeDecodeError, ValueError) as fehler:
print("STOPP: Inhalt ungueltig:", fehler)
break
except urllib.error.HTTPError as fehler:
if fehler.code != 503 or versuch == MAX_VERSUCHE:
print("STOPP: HTTP-Status", fehler.code)
break
print("Dienst 503; ein begrenzter neuer Versuch")
except (urllib.error.URLError, TimeoutError,
socket.timeout) as fehler:
if versuch == MAX_VERSUCHE:
print("STOPP: Verbindung/Zeitlimit:", fehler)
break
print("Zeit-/Verbindungsfehler; letzter Versuch")
if versuch < MAX_VERSUCHE:
time.sleep(0.2)
Ablauf: Starte erst dienst.py, dann client.py. Teste nacheinander FALL = "normal", "timeout", "json" und "dienst". Trage je Test ein: angefragter Pfad, beobachteter Status beziehungsweise Fehlertyp, Anzahl Versuche, Endmeldung. In einfachen Python-Versionen kann die genaue Ausnahme bei Netzfehlern variieren; wichtig sind begrenzter Abbruch und kein erfundener Messwert. Der Code setzt Python 3 mit Standardbibliothek voraus, nutzt keine externe KI und sendet nichts ins Internet. Auch eine erfolgreiche Demonstration ist kein Sicherheitstest für Maschinen.
KI-Agenten als überprüfbare Helfer
Ein KI-Agent ist hier ein assistierendes System, das Text oder Vorschläge für mehrere Arbeitsschritte erzeugen kann. Du darfst den folgenden Auftrag auch als Rollenspiel ohne KI bearbeiten: „Lies nur Daten aus der lokalen Lehr-API. Schlage GET-Anfragen, erwartete Statuscodes und drei Fehlerfälle vor. Fordere keine Schlüssel an, öffne keine fremden Hosts, nutze keinen Schreibzugriff. Kennzeichne Unsicherheiten.“
Prüfe einen Vorschlag mit fünf Leitfragen: Stimmt der Endpunkt? Ist die Methode nur lesend? Sind Felder und Einheiten vereinbart? Sind Timeout, beschädigtes JSON und Versuchszahl berücksichtigt? Wer trägt die Verantwortung für die Entscheidung? Ein KI-Text ist kein Beleg, dass der Dienst so funktioniert. Die tatsächliche lokale Beobachtung und das Prüfprotokoll haben Vorrang. Die eigene Begründung darf nicht an den Agenten delegiert werden.
Fehler begründen und auf neue Aufgaben übertragen
Diagnose mit Entscheidungen
Fall A: Der Server antwortet nach zwei Sekunden. Bei clientseitigem Zeitlimit von einer Sekunde entstehen zwei begrenzte Fehlschläge. Gute Entscheidung: keine scheinbar gültige Messzahl anzeigen; den Abbruch dokumentieren. Fall B: HTTP 200, aber Body endet mitten in einer JSON-Struktur. Gute Entscheidung: als Formatfehler markieren und nicht so tun, als sei der Wert 23,4 bestätigt. Fall C: Beide Versuche liefern 503. Gute Entscheidung: stoppen statt eine dritte Anfrage zu schicken. Fall D: HTTP 200 und gültiges JSON, aber Einheit „kg“ statt „mm“. Gute Entscheidung: Schemaprüfung verweigert die Ausgabe eines Längenwerts.
Transferauftrag: Eine robuste Schnittstelle ohne Maschinenzugang
Stelle dir vor, ein Betrieb möchte später verschiedene Prüfwertdateien in eine lokale Trainings-App einlesen. Entwickle einen reinen Lesevertrag: zulässige Routen, dokumentierte Einheit, Status- und Fehlerfälle, maximale Antwortgröße, Timeout, Wiederholungsregel, Testnachweis und bewusst ausgeschlossene Schreibaktionen. Entscheide, warum eine konkrete neue Anforderung freigegeben oder zurückgestellt wird. Schon wenn eine KI einen Befehl wie „schalte die Maschine frei“ formuliert, ist die richtige Reaktion: nicht ausführen, Kompetenzgrenze erklären und fachliche Zuständigkeit klären. Kein Kursbeispiel ersetzt betriebliche Freigabe, Qualifizierung oder eine Risikobeurteilung.
Vertiefung: Unterscheide einen 429-Status (zu viele Anfragen), einen lokalen Timeout und einen 503-Status. Berücksichtige, dass Wiederholung von verändernden Anfragen Nebenwirkungen haben kann; das Lehrbeispiel beschränkt sich daher absichtlich auf GET. Denke über Validierung, Protokoll ohne Geheimnisse, zusätzliche Obergrenzen und unsichere Agentenwerkzeuge nach.
Interaktive Aufgaben
Bei den Multiple-Choice-Aufgaben liefert das Quizmodul nach deiner Auswahl Rückmeldung. Die jeweils richtige Antwort ist in der Lernansicht nicht als vorausgefüllte Lösung auszugeben.
Quiz: Schnittstellen sicher verstehen
Was beschreibt eine API am treffendsten? (Eine vereinbarte Schnittstelle für Daten und Funktionen) (!Eine beliebige Datei ohne Regeln) (!Eine dauerhafte Netzwerkverbindung ohne Antworten) (!Eine Sicherheitsfreigabe für eine Maschine)
Welche HTTP-Methode nutzt der lokale Lehr-Client ausschließlich? (GET) (!DELETE) (!PUT) (!POST)
Welche Aussage trifft auf den Status 200 zu? (Die HTTP-Anfrage wurde erfolgreich bearbeitet) (!Alle fachlichen Messwerte sind garantiert korrekt) (!Der Client hat automatisch eine Maschinenfreigabe) (!Jedes JSON-Feld ist garantiert vorhanden)
Woran erkennst du syntaktisch fehlerhaftes JSON? (Eine notwendige schliessende Klammer fehlt) (!Ein gueltiger Zahlenwert kommt vor) (!Ein Objektschluessel enthaelt Text) (!Die Einheit wird als Zeichenkette geschrieben)
Warum prüft der Client eine Einheit? (Damit ein Zahlenwert fachlich richtig eingeordnet wird) (!Damit der HTTP-Status automatisch auf 200 springt) (!Damit er das Internet ohne Erlaubnis nutzen darf) (!Damit jede Wiederholung erfolgreich wird)
Was bedeutet eine lokale Zeitüberschreitung? (Der Client erhielt in der festgelegten Wartezeit kein ausreichendes Ergebnis) (!Der Server hat zwingend den HTTP-Code 408 geschickt) (!Das JSON ist sicher syntaktisch falsch) (!Der gelesene Zahlenwert muss null sein)
Wie viele Versuche erlaubt der Lehr-Client insgesamt? (Zwei) (!Unbegrenzt viele) (!Mindestens zehn) (!Immer genau fuenf)
Was soll der Client bei beschädigtem JSON tun? (Fehler melden und keinen scheinbar gueltigen Wert anzeigen) (!Fehlende Zeichen frei erfinden) (!Den Inhalt als Maschinenfreigabe bewerten) (!Jede Anfrage unendlich oft wiederholen)
Welche Maßnahme begrenzt das Ziel einer Agentenabfrage? (Eine feste Liste erlaubter lokaler Pfade) (!Eine beliebige vom Agenten erfundene Internetadresse) (!Das Abschalten der Datentyppruefung) (!Die Freigabe aller HTTP-Methoden)
Welcher Transfer bleibt innerhalb des Kursrahmens? (Einen lesenden Testvertrag mit synthetischen Daten pruefen) (!Einen echten Antrieb direkt ansteuern) (!Eine betriebliche Sicherheitsfreigabe automatisch ausstellen) (!Echte geheime Zugangsdaten in einen Prompt kopieren)
Memory: Begriffe und Erklärungen
| API | Vereinbarter Zugang zwischen Programmen |
| Endpunkt | Adresse einer konkreten Schnittstellenoperation |
| Header | Zusatzinformationen einer HTTP-Nachricht |
| JSON | Textformat strukturierter Daten |
| Timeout | Erreichen einer festgelegten Wartegrenze |
| Allowlist | Vorher bestimmte erlaubte Ziele |
Drag and Drop: Fehler und Reaktion
| Ordne die passende Reaktion zu. | Beobachtung |
|---|---|
| Keine Zahl ausgeben | Beschädigte JSON-Antwort |
| Wartezeit begrenzen | Sehr langsamer lokaler Dienst |
| Nach zwei Versuchen stoppen | Wiederholt vorübergehend nicht bereit |
| Einheit zurückweisen | Kilogramm statt Millimeter |
| Nur lokale Pfade zulassen | Agent schlägt fremden Server vor |
Kreuzworträtsel: API-Fachwörter
| Client | Welches Programm startet die Abfrage? |
| Server | Welches Programm beantwortet die Anfrage? |
| Methode | Wie heißt das Anfragefeld für GET oder POST? |
| Header | Wie nennt man HTTP-Zusatzinformationen? |
| Timeout | Welcher Begriff steht für eine erreichte Wartegrenze? |
| Schema | Welche Beschreibung legt Felder und erwartete Typen fest? |
LearningApps: Weitere Zuordnungen
Du kannst dort nach passenden Übungen suchen; einzelne Suchtreffer sind nicht vorab didaktisch oder rechtlich geprüft. Offline-Alternative: Nutze die Memory- und Drag-and-Drop-Paare dieser Seite als Papierkarten.
Lückentext: Sichere Abfragen
Offene Aufgaben
Leicht
- Client-Server-Modell: Zeichne den Weg einer GET-Anfrage zum lokalen Testdienst und beschrifte beide Richtungen.
- HTTP-Statuscode: Schreibe für 200, 404 und 503 je einen selbst formulierten Satz mit einem erfundenen Beispiel.
- JSON: Markiere in zwei synthetischen Datenobjekten die Schlüssel, die Zahl und die Einheit; erkläre jedes Feld.
- Schnittstelle: Erstelle eine Steckkarte für /api/v1/werte mit Methode, erwarteter Antwort und Verbot von Schreibzugriff.
Standard
- Testprotokoll: Teste den Normalfall und dokumentiere Erwartung, Beobachtung, Wert und Einheitenprüfung.
- Timeout: Simuliere den langsamen Pfad mit Karten oder Python und begründe die feste Wartegrenze.
- Fehlerbehandlung: Untersuche ungültiges JSON und begründe, warum der Client trotz Status 200 keine Zahl anzeigen darf.
- Wiederholungsstrategie: Zeige den zweimaligen 503-Fall und begründe, warum ein dritter Versuch unterbleibt.
Schwer
- API-Design: Beschreibe einen zweiten synthetischen Lesedatensatz samt Ressourcenpfad, JSON-Schema und plausiblen Fehlern.
- Validierung: Entwickle drei Tests für gültiges JSON mit fehlendem Feld, falscher Einheit oder ungeeignetem Datentyp.
- KI-Agent: Prüfe eine selbst erfundene problematische KI-Empfehlung mit einer Allowlist und begründe deine Ablehnung.
- Risikomanagement: Vergleiche zwei Fehlerstrategien, diskutiere Timeout und Wiederholungsbudget und dokumentiere die sichere Grenze ohne Maschinenzugang.


Lernkontrolle
- Schnittstellenvertrag: Begründe, warum ein HTTP-Status allein keine fachlich gültige Messung nachweist.
- Timeout-Behandlung: Erkläre bei zwei langsam beantworteten GET-Abfragen die erwartete Reaktion und die Versuchszahl.
- JSON-Validierung: Vergleiche defektes JSON mit formal gültigem JSON falscher Einheit und begründe unterschiedliche Prüfungen.
- Fehlerstrategie: Entscheide bei 404, 503 und lokalem Timeout, wann eine Wiederholung im Lehrvertrag sinnvoll ist.
- KI-Sicherheit: Erkläre, warum ein Agentenvorschlag keine Berechtigung erzeugt und weshalb ein fremder Host zurückzuweisen ist.
- Transfer: Beschreibe eine neue lokale Leseschnittstelle und dokumentiere zwei Negativtests und ihre Bedeutung.
Lernnachweis
Abzugeben ist ein prüfbares Portfolio, alternativ vollständig handschriftlich mit Antwortkarten: (1) einseitiger Schnittstellenvertrag für den lokalen lesenden Dienst, (2) Ablaufdiagramm vom GET bis zur geprüften Anzeige, (3) Client als Python-Datei oder gleichwertiger ausführlicher Entscheidungsgang, (4) Tabelle mit vier Testfällen Normalfall, Timeout, defektes JSON und wiederholter 503, (5) eigene Begründung zu Timeout behandeln, ungültiges JSON erkennen, Wiederholungen begrenzen und (6) begründete Abgrenzung gegen Maschinenzugang und Agenten-Selbstfreigabe.
Beurteilungskriterien: fachlich richtige HTTP-/JSON-Begriffe; reproduzierbare Eingaben und erwartete Ausgaben; keine unerkannte Falschanzeige; maximal zwei Versuche; belegbarer Abbruch; selbstständige und verständliche Entscheidungen. Ein Screenshot allein genügt nicht. Keine realen Studierenden-, Betriebs- oder Messdaten einreichen. Selbstkontrolle: Kann eine andere Person mit denselben Testfällen deinen Ablauf nachvollziehen, ohne einen externen Dienst zu verwenden?
OER und Wikipedia
Quellenstand: 22.10.2026; Versionsangaben, soweit an der Quelle ersichtlich. Internetseiten und Videowiedergabe können sich verändern. Die MOOCwiki-Grundlagenseite mit curid=60654 war während der Recherche nicht zuverlässig abrufbar; ihr Inhalt wird nicht ungeprüft zusammengefasst.
- MDN: Überblick über HTTP – deutschsprachige technische Erläuterung zu Anfrage, Antwort, GET und Statuscodes (Online-Dokumentation, laufende Pflege).
- MDN: HTTP response status codes – Definitionen nach HTTP-Standards, insbesondere 200, 404, 503 (laufende Dokumentation).
- MDN: Using the Fetch API – Statusprüfung und fehlerbewusster Datenabruf (laufende Dokumentation).
- NIST AI 600-1, Generative AI Profile – Juli 2024, Risiko- und Verantwortungsrahmen, keine Softwarefreigabe.
- MCP Security Best Practices – Dokumentationspfad 2026-07-28, zusätzliche Sicherheitsrisiken bei Agenten-Werkzeugzugriff; keine Behauptung, dass MCP selbst hier installiert sein müsse.
- Wikipedia: Representational State Transfer und Wikipedia: JSON – offene Vertiefungen; Artikelversionen ändern sich.
- Vorhandener Lernbaustein – Grundlagenanker; nicht als verifiziertes Zitat benutzt.
Nachgewiesene Wikimedia-Commons-Dateiseiten und Rechte:
| Eingebundene Datei | Echte Dateiseite | Urheber | Kennzeichnung |
|---|---|---|---|
| File:Client-server model.svg | Commons | Lubaochuan | CC BY-SA 4.0 |
| File:HTTP-Anfrage.svg | Commons | Sébastien Santoro/Dereckson; Kulandru mor | Gemeinfrei laut Dateiseite |
| File:Web API diagram.svg | Commons | I.hate.spam.mail.here | CC0 1.0 |
| File:JSON vector logo.svg | Commons | Douglas Crockford | Gemeinfreies einfaches Logo laut Commons; Markenrecht gesondert prüfen |
Videoquelle: Programmieren Starten: Was ist JSON? (18.11.2019; reguläre YouTube-Nutzungsrechte, keine freie Nachnutzung zugesichert). Die Wiedergabe war beim Abruf der Videoseite nicht unabhängig bestätigbar. Die eingebettete Fremdquelle ist optional; sämtliche Lernziele und Tests funktionieren mit der Textalternative.
Medienfreie Alternative: Verwende die beschriebenen Client-Server-Pfeile, die ausgeschriebene Beispielanfrage, die JSON-Textbeispiele und die vollständig lokalen Fehlerkarten. Weitere Audio- oder Animationsdateien sind nicht eingebettet, da keine ausreichend passende und verlässlich lizenzierte Quelle bestätigt wurde.
Verknüpfte Lernbereiche
aiMOOC-Projekte
Schulfach+


aiMOOCs


aiMOOC Projekte


MOOCwiki · Deutsch
Nach dem Lernen ist vor dem Lernen
Entdecke direkt den nächsten Lernkurs. Weitere Inhalte erscheinen, wenn Du weiter nach unten scrollst.
Zur MOOCwiki-HauptseiteMediathek
Mediathek wird aus dem Wiki geladen ...
Keine passenden Inhalte gefunden. Bitte ändere Suche oder Filter.
NEWSLernweltNOAH fragenInhalt melden · Hinweise zu Fehlern, Quellen, Medienrechten oder Dubletten