Sto usando lumen cercando di impostare semplici richieste API via guzzle.base_uri non essendo basato sull'istanza del client guzzle
Il problema è che il parametro base_uri non sembra essere passato correttamente sullo new Client()
iniziale.
esempio semplificato:
use GuzzleHttp\Client;
$client = new Client([
'base_uri' => 'https://siteurl.com/api/v2'
]);
quindi chiamando l'API tramite ottenere
$res = $client->get('orders', [
'query' => [
'status' => 'completed'
]
]);
non funziona. Sono stato attento a non utilizzare URL assoluti come /orders
. Se ignoro interamente base_uri e lo aggiungo semplicemente al metodo get $client->get('https://siteurl.com/api/v2/orders')
, funziona.
sto usando: "laravel/lumen-quadro": "5.0. *", "guzzlehttp/guzzle": "^ 6.0"
* Follow-up:
Ho aggiunto il flag di debug in modo da poter confrontare le intestazioni e la differenza evidente è nella riga di richiesta di ottenere.
URL assoluto nella (base_uri bypassando) metodo get:?
GET/api/v2/Stato Ordini = completato HTTP/1,1
Utilizzando base_uri (versione viene spogliato):
GET/api/ordini? status = completato HTTP/1,1
Ti è capitato di capirlo? Sto avendo lo stesso identico problema, e ho il mio base_uri terminato con un/come suggerito nella risposta. –
Ignora il mio commento. Stavo guardando la documentazione sbagliata per la mia versione di guzzle. La versione più recente utilizza base_uri e sono tornato su una versione precedente che utilizzava invece base_url. –
@PaulZepernick La soluzione che ho suggerito di lavorare per te? –