今天给大家分享,如何在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时,它返回数据

好吧,或者你可以使用 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 请求的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号