오늘은 Laravel에서 여러 API를 호출하는 방법을 여러분께 공유해 드립니다
이제 클라이언트(vue, React, js,...)에서 여러 API를 호출할 수 있다고 약속합니다. Promise.all([...])을 사용하면 여러 약속이 반환됩니다
알았어 가지마
첫 번째로 Laravel 11 프로젝트를 설치할 수 있습니다
두 번째로 web.php 또는 컨트롤러, 서비스,..에서 설정할 수 있습니다.
예: web.php 파일에 코드를 작성하고 테스트를 도와줍니다
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', ]; });
URL : http://127.0.0.1/multiple-request 를 요청하면 데이터가 반환됩니다
알겠습니다. 아니면 Http::pool을 사용하여 API를 요청할 수 있습니다
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); });
반품 데이터 :
기사 : HTTP 요청을 사용하는 Laravel의 다중 API
위 내용은 HTTP 요청을 사용하는 Laravel의 다중 API의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!