Как обновить описание сервиса Guzzle для v5?
У меня есть следующее описание сервиса, которое я использовал довольно долго с более старой версией Guzzle:
[
'name' => 'Gist',
'apiVersion' => 'v3',
'baseUrl' => 'https://api.github.com/',
'description' => 'Gists and comments access',
'operations' => [
'GetGists' => [
'httpMethod' => 'GET',
'uri' => '/users/{user}/gists',
'parameters' => [
'user' => [
'location' => 'uri',
'required' => true,
],
'since' => [
'location' => 'query',
],
],
],
'GetComments' => [
'httpMethod' => 'GET',
'uri' => '/gists/{id}/comments',
'parameters' => [
'id' => [
'location' => 'uri',
'required' => true,
],
],
],
],
]
Теперь я перемещаю кучу вещей в текущую версию Guzzle, и это абсолютно отказывается работать с новыми сломанными guzzle/services
.
Мой код примерно таков:
$client = new Client;
$client->setDefaultOption('verify', false);
$description = new Description($this->getServiceDescription());
$guzzleClient = new GuzzleClient($client, $description);
$command = $guzzleClient->getCommand('GetGists', [ 'user' => $this->user ]);
$gists = $guzzleClient->execute($command); // $gists is empty array?..
Он ясно понимает команду по крайней мере частично, так как он будет жаловаться, если я не предоставлю требуемый аргумент или неправильно напишу имя.
Но в конце концов это просто пустой массив, и нет никакой удаленной идеи, что мне нужно сделать, чтобы устранить его или как мне нужно обновить описание службы.
URL, который он должен (делает?) доступ есть https://api.github.com/users/Rarst/gists
1 ответ:
Ладно, похоже, что модель обязательна для интерпретации ответа, и я получил ее в работу (без особого понимания того, что и как модель контролирует :\ ):
[ 'name' => 'Gist', 'apiVersion' => 'v3', 'baseUrl' => 'https://api.github.com/', 'description' => 'Gists and comments access', 'operations' => [ 'GetGists' => [ 'responseModel' => 'getResponse', 'httpMethod' => 'GET', 'uri' => '/users/{user}/gists', 'parameters' => [ 'user' => [ 'location' => 'uri', 'required' => true, ], 'since' => [ 'location' => 'query', ], ], ], 'GetComments' => [ 'responseModel' => 'getResponse', 'httpMethod' => 'GET', 'uri' => '/gists/{id}/comments', 'parameters' => [ 'id' => [ 'location' => 'uri', 'required' => true, ], ], ], ], 'models' => [ 'getResponse' => [ 'type' => 'object', 'additionalProperties' => [ 'location' => 'json' ] ] ] ]