HTTP 요청을 사용하는 Laravel의 다중 API

WBOY
풀어 주다: 2024-08-18 06:45:02
원래의
861명이 탐색했습니다.

오늘은 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 를 요청하면 데이터가 반환됩니다

Multiple API in Laravel with HTTP Requests

알겠습니다. 아니면 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);

});

로그인 후 복사

반품 데이터 :

Multiple API in Laravel with HTTP Requests

기사 : HTTP 요청을 사용하는 Laravel의 다중 API

위 내용은 HTTP 요청을 사용하는 Laravel의 다중 API의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!