Was ist der HTTP-Client?
Der HTTP-Client von Laravel ist eine bequeme API auf Basis von Guzzle. Über die FacadeHttp senden Sie kompakt HTTP-Anfragen an externe Webdienste und APIs.
Guzzle ist bereits vorinstalliert, sodass Sie ohne zusätzliche Konfiguration sofort loslegen können.
Grundlegende Anfragen
GET-Anfrage
POST-Anfrage
Standardmäßig werden Daten alsapplication/json gesendet.
PUT / PATCH / DELETE
Antworten verarbeiten
Methoden wieHttp::get() liefern eine Instanz von Illuminate\Http\Client\Response.
Diese bietet viele Möglichkeiten, die Antwort zu inspizieren.
Anfrage-Optionen
Header setzen
application/json als akzeptierten Content-Type anzugeben, ist acceptJson() praktisch.
Für CSRF-Header (
X-CSRF-TOKEN / X-XSRF-TOKEN) bei AJAX-Anfragen aus dem Browser an Laravel-Endpunkte lesen Sie den Abschnitt CSRF-Schutz.Authentifizierung
Bearer-Token (am gängigsten):Basis-URL setzen
Wenn Sie viele Anfragen an denselben Host senden, bündeln Sie das mitbaseUrl().
Formulardaten senden
Um Daten alsapplication/x-www-form-urlencoded zu senden, verwenden Sie asForm().
Timeouts
Retries
Für temporäre Netzwerkstörungen oder Serverfehler können Sie automatische Wiederholungen konfigurieren.Fehlerbehandlung
Fehler manuell prüfen
Der HTTP-Client wirft standardmäßig keine Ausnahmen für 4xx-/5xx-Antworten. Nutzen Siefailed() oder clientError(), um solche Zustände abzufragen.
Ausnahmen auslösen
Mitthrow() löst der Client bei Fehlerantworten eine Illuminate\Http\Client\RequestException aus.
throw() gibt die Antwort zurück und lässt sich verketten.
Parallele Anfragen
Um mehrere APIs gleichzeitig anzusprechen, verwenden Siepool().
Tests
Mocking mit Http::fake()
In Tests simulieren Sie Antworten mitHttp::fake(), ohne echte Anfragen zu senden.
Anfragen verifizieren
MitHttp::assertSent() prüfen Sie den Inhalt gesendeter Anfragen.
Stray-Anfragen verhindern
Praxisbeispiel: Service-Klasse für einen externen API-Aufruf
In der Praxis ist es Best Practice, die Client-Logik in eine Service-Klasse zu kapseln.1
Service-Klasse erstellen
2
Im Service Provider registrieren
3
Aus dem Controller nutzen
4
Tests schreiben
Zusammenfassung
Häufig genutzte Methoden
Häufig genutzte Methoden
Methoden zur Statusprüfung
Methoden zur Statusprüfung
Best Practices für externe APIs
Best Practices für externe APIs
- Kapseln Sie die HTTP-Logik in einer Service-Klasse.
- Setzen Sie immer ein Timeout (
timeout()undconnectTimeout()). - Konfigurieren Sie Wiederholungen für transiente Ausfälle (
retry()). - Nutzen Sie in Tests konsequent
Http::fake(), um externe APIs nicht wirklich anzusprechen. Http::preventStrayRequests()im Testsetup schafft zusätzliche Sicherheit.- Legen Sie API-Tokens und Zugangsdaten in Umgebungsvariablen und in
config/services.phpab.