Laravel 为 Guzzle HTTP 客户端 提供了一套语义化且轻量的 API,让你可用快速地使用 HTTP 请求与其他 Web 应用进行通信。该 API 专注于其在常见用例中的快速实现以及良好的开发者体验。
重要的事情放在前面说,Laravel 内置了 Guzzle 并且提供了一套漂亮的 API 语法,使用 Laravel 开发时不需要再傻傻的用原生的 Guzzle 啦。
本文主要介绍 withUrlParameters
方法的用途,该方法允许我们使用 URI 模板规范 构造请求 URL。
没用 withUrlParameters
方法时:
$http = \Illuminate\Support\Facades\Http::baseUrl('https://www.02405.com');
$order_id = 88888888;
$product_id = 99999999;
$orderUrl = sprintf('/admin/api/v2302/orders/%d.json', $order_id);
$cartUrl = sprintf('/admin/api/v2302/orders/%d/products/%d.json', $order_id, $product_id);
$order = $http->get($orderUrl);
$cart = $http->get($cartUrl);
使用 withUrlParameters
方法后:
$http = \Illuminate\Support\Facades\Http::baseUrl('https://www.02405.com')
->withUrlParameters([
'order_id' => 88888888,
'product_id' => 99999999
]);
$orderUrl = '/admin/api/v2302/orders/{order_id}.json';
$fulfillmentUrl = '/admin/api/v2302/orders/{orders_id}/products/{product_id}.json';
$order = $http->get($orderUrl);
$cart = $http->get($cartUrl);
也就是说 withUrlParameters
方法会按照 URI 模板规范自动替换参数,不需要再额外拼接参数了,这在参数较多的时候可以明显降低心智负担。