Как разделить базовый URL-адрес и конечную точку в вызове API http-клиента laravel?

#php #laravel #api #http #guzzle

Вопрос:

Как и в случае с жадностью, я хочу отделить базовый URL-адрес и конечную точку

 use GuzzleHttpClient;
use GuzzleStreamPhpStreamRequestFactory;

$client = new Client('https://stream.twitter.com/');//base url

$request = $client->post('statuses/2',123);//end point


 

Ответ №1:

Да, это возможно. У него есть метод, называемый baseUrl()

 $http=Http::baseUrl("https://stream.twitter.com/")
             ->post('statuses/2',["status"=>"success"]);
 

Предположим, что если вы ищете нового клиента, то конфигурация выглядит следующим образом

  $client = new Client([
         'base_uri'        => 'http://www.fake.com/1.0/',
         'timeout'         => 0,
         'proxy'           => '192.168.16.1:10'
    ]);
 

Ответ №2:

Может быть, вы хотите чего-то подобного?

 $client = Http::baseUrl("https://stream.twitter.com/");
$response2 = $client->post('statuses/2',["status"=>"success"]);
$response3 = $client->post('statuses/3',["status"=>"success"]);
 

Ответ №3:

Для этого жрут использует жрут/psr7. Вы тоже можете (я думаю, что любая реализация PSR7 не будет просто жрать, так как PSR7 является стандартом):

 use GuzzleHttpPsr7Uri;

$uri = new Uri('https://stream.twitter.com/');
$uriWithPath = $uri->withPath('statuses/2');
 

Имейте в виду, что Uri это неизменяемый класс, поэтому все операции изменения создают новый экземпляр Uri с необходимым вам дополнительным свойством.