API-Antworten und Fehler verarbeiten
Prüfen Sie HTTP-Statuscodes, behandeln Sie Fehler und analysieren Sie API-Payloads.
API-Antworten und Fehler verarbeiten ist eine kostenlose PHP Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des PHP Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der PHP Academy-Kurs umfasst insgesamt 4 Lektionen.
HTTP-Statuscode prüfen
Prüfen Sie immer den HTTP-Statuscode, bevor Sie den Antworttext verarbeiten.
<?php
$statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($statusCode !== 200) {
throw new RuntimeException("API error: HTTP $statusCode");
}JSON-Antwort analysieren
Dekodieren Sie den JSON-Text und behandeln Sie Analysefehler.
<?php
$body = curl_exec($ch);
$data = json_decode($body, true, 512, JSON_THROW_ON_ERROR);
// $data is now a PHP arrayAntworttexte bei Fehlern
APIs liefern häufig auch bei 4xx- oder 5xx-Antworten Fehlerdetails im Antworttext. Analysieren und protokollieren Sie den Antworttext bei Fehlern daher immer.
<?php
if ($statusCode >= 400) {
$err = json_decode($body, true);
$msg = $err["message"] ?? "Unknown API error";
throw new RuntimeException("API $statusCode: $msg");
}cURL-Transportfehler
Netzwerkfehler (DNS-Fehler, Zeitüberschreitungen) sind von HTTP-Fehlern getrennt. Prüfen Sie zuerst curl_errno() und anschließend den HTTP-Status.
<?php
if (curl_errno($ch)) {
throw new RuntimeException("Transport error: ".curl_error($ch));
}In eine Hilfsfunktion kapseln
Kapseln Sie die Einrichtung, Ausführung und Fehlerbehandlung von cURL in einer wiederverwendbaren Funktion.
<?php
function httpGet(string $url, string $token): array {
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["Authorization: Bearer $token"],
CURLOPT_TIMEOUT => 15,
]);
$body = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$errno = curl_errno($ch);
curl_close($ch);
if ($errno) throw new RuntimeException(curl_strerror($errno));
if ($status >= 400) throw new RuntimeException("HTTP $status");
return json_decode($body, true, 512, JSON_THROW_ON_ERROR);
}Logik für Wiederholungsversuche
Implementieren Sie bei vorübergehenden Fehlern (503 Service Unavailable, Zeitüberschreitungen) einen exponentiellen Backoff mit einer Begrenzung der Wiederholungsversuche.
<?php
$maxRetries = 3;
for ($attempt = 0; $attempt < $maxRetries; $attempt++) {
try {
$data = httpGet($url, $token);
break;
} catch (RuntimeException $e) {
if ($attempt === $maxRetries - 1) throw $e;
sleep(2 ** $attempt);
}
}Header zur Ratenbegrenzung
Viele APIs enthalten Header zur Ratenbegrenzung: X-RateLimit-Remaining und X-RateLimit-Reset. Lesen Sie diese aus, um das Erreichen von Limits zu vermeiden.
<?php
curl_setopt($ch, CURLOPT_HEADER, true);
// Parse headers from the response stringAntworten zwischenspeichern
Speichern Sie API-Antworten zwischen, um redundante Netzwerkaufrufe zu vermeiden. Legen Sie die Antworten in Redis oder APCu mit einer TTL ab, die den Anforderungen an die Aktualität der Daten entspricht.
API-Aufrufe protokollieren
Protokollieren Sie URL, Methode, Statuscode und Latenz der Anfrage, um das Debugging zu erleichtern und den Zustand der API in der Produktion zu überwachen.
Zeitüberschreitungen als Fehler
Eine cURL-Zeitüberschreitung (CURLE_OPERATION_TIMEDOUT) ist ein Transportfehler und kein HTTP-Fehler. Behandeln Sie sie ausdrücklich.
Fehler bei SSL-Zertifikaten
Fehler bei der Zertifikatsvalidierung (CURLE_SSL_CACERT) bedeuten, dass dem Serverzertifikat nicht vertraut wird. Aktualisieren Sie Ihr CA-Bundle und deaktivieren Sie niemals die Verifizierung.
Zusammenfassung
Prüfen Sie immer zuerst den cURL-Fehlercode und anschließend den HTTP-Status. Analysieren Sie Fehlertexte. Kapseln Sie die Logik in wiederverwendbaren Funktionen. Implementieren Sie Wiederholungsversuche für vorübergehende Fehler.
Kurze Überprüfung
Was sollten Sie zuerst prüfen: den cURL-Fehlercode oder den HTTP-Status?
Häufig gestellte Fragen
Ist die Lektion „API-Antworten und Fehler verarbeiten“ kostenlos?
Ja — der vollständige Text von „API-Antworten und Fehler verarbeiten“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des PHP Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der PHP Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „API-Antworten und Fehler verarbeiten“?
Prüfen Sie HTTP-Statuscodes, behandeln Sie Fehler und analysieren Sie API-Payloads. Du übst PHP Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um PHP Academy zu starten?
Keine Vorkenntnisse erforderlich. PHP Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „API-Antworten und Fehler verarbeiten“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser PHP Academy-Lektion Code schreiben und ausführen?
Ja. Jede PHP Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- JSON-Kodierung und -Dekodierung
- HTTP-Anfragen mit cURL stellen
- API-Antworten und Fehler verarbeiten
- Einen einfachen API-Client erstellen