Я использую lumen, пытаясь настроить простые запросы API через guzzle.
Проблема в том, что параметр base_uri неправильно передается в начальном new Client()
.
Упрощенный пример:
use GuzzleHttp\Client;
$client = new Client([
'base_uri' => 'https://siteurl.com/api/v2'
]);
Затем вызов API через get
$res = $client->get('orders', [
'query' => [
'status' => 'completed'
]
]);
не работает. Я старался не использовать абсолютные URL-адреса, такие как /orders
. Если я полностью обойду base_uri и просто добавлю его в метод получения $client->get('https://siteurl.com/api/v2/orders')
, он сработает.
Я использую: "laravel/lumen-framework": "5.0.*", "жратьhttp/жрать": "^6.0"
*Дополнение:
Я добавил флаг отладки, чтобы можно было сравнить заголовки, и заметная разница заключается в строке запроса на получение.
Абсолютный URL в методе get (в обход base_uri):
ПОЛУЧИТЬ /api/v2/orders?status=completed HTTP/1.1
Использование base_uri (версия удаляется):
ПОЛУЧИТЬ /api/orders?status=completed HTTP/1.1