Heim > Artikel > Backend-Entwicklung > Mehrere APIs in Laravel mit HTTP-Anfragen
Heute teile ich allen mit, wie man mehrere APIs in Laravel aufruft
Wir versprechen jetzt, dass wir mehrere APIs vom Client aus aufrufen können (Vue, React, JS, ...). Wenn Sie Promise.all([...]) verwenden, werden mehrere Versprechen zurückgegeben
Okay, lass uns gehen
Zuerst können Sie das Projekt Laravel 11 installieren
Zweitens können wir es in web.php oder Controller, Services usw. einrichten.
Beispiel: Ich schreibe Code in die web.php-Datei und helfe beim Testen
use Illuminate\Support\Facades\Http; use GuzzleHttp\Promise\Utils; use GuzzleHttp\Exception\ConnectException; use Illuminate\Http\Client\Pool; Route::get('multiple-request', function() { $responses = Utils::all([ 'foo' => Http::async()->get('https://jsonplaceholder.typicode.com/todos/1')->then(function ($response) { // you can check data, after then return it return $response; }), 'bar' => Http::async()->get('https://jsonplaceholder.typicode.com/todos/2')->then(function ($response) { // you can check data, after then return it return $response; }), 'baz' => Http::async()->get('https://jsonplaceholder.typicode.com/todos/3')->then(function ($response) { // you can check data, after then return it return $response; }), ])->wait(); // you need check data here $fooOk = $responses['foo']->ok(); $barSuccessful = $responses['bar']->successful(); $connectionFailed = $responses['baz'] instanceof ConnectException; return [ 'foo' => $responses['foo']->ok() ? $responses['foo']->json() : 'Request to foo failed', 'bar' => $responses['bar']->successful() ? $responses['bar']->json() : 'Request to bar failed', 'baz' => $responses['baz']->ok() ? $responses['baz']->json() : 'Request to baz failed', ]; });
Wenn Sie die URL http://127.0.0.1/multiple-request anfordern, werden Daten zurückgegeben
Okay, oder Sie können Http::pool verwenden und eine API anfordern
Route::get('multiple-request-using-pool', function() { $responses = Http::pool(fn (Pool $pool) => [ $pool->get('https://jsonplaceholder.typicode.com/todos/1'), $pool->get('https://jsonplaceholder.typicode.com/todos/2'), $pool->get('https://jsonplaceholder.typicode.com/todos/3'), ]); $responses[0]->ok(); $responses[1]->successful(); // Kiểm tra và lấy nội dung từ các phản hồi $data = [ 'todo_1' => $responses[0]->ok() ? $responses[0]->json() : 'Request to todo 1 failed', 'todo_2' => $responses[1]->successful() ? $responses[1]->json() : 'Request to todo 2 failed', 'todo_3' => $responses[2]->ok() ? $responses[2]->json() : 'Request to todo 3 failed', ]; return response()->json($data); });
Rückgabedaten:
Der Artikel: Mehrere APIs in Laravel mit HTTP-Anfragen
Das obige ist der detaillierte Inhalt vonMehrere APIs in Laravel mit HTTP-Anfragen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!