登录
首页 >  文章 >  php教程

Laravel 中的多个 API 与 HTTP 请求

来源:dev.to

时间:2024-08-19 11:00:56 398浏览 收藏

欢迎各位小伙伴来到golang学习网,相聚于此都是缘哈哈哈!今天我给大家带来《Laravel 中的多个 API 与 HTTP 请求》,这篇文章主要讲到等等知识,如果你对文章相关的知识非常感兴趣或者正在自学,都可以关注我,我会持续更新相关文章!当然,有什么建议也欢迎在评论留言提出!一起学习!

今天给大家分享,如何在laravel中调用多个api
我们现在承诺可以从客户端调用多个 api(vue、react、js...)。如果你使用promise.all([...]),它会返回多个promise

好吧,我们走

首先,可以安装laravel 11项目

第二个,我们可以在web.php或者controller,services,..

中设置

示例:我在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时,它返回数据

Laravel 中的多个 API 与 HTTP 请求

好吧,或者你可以使用 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);

});

返回数据:

Laravel 中的多个 API 与 HTTP 请求

文章:laravel 中的多个 api 和 http 请求

今天关于《Laravel 中的多个 API 与 HTTP 请求》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:dev.to 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>