Я использую Guzzle, чтобы делать запросы к веб-сервису.Могу ли я указать заголовки Accept и Content-Type в файле маршрутов Guzzle?
У меня есть JSON-файлы, которые выглядят примерно так:
{
"name": "Webservice name",
"apiVersion": "1.0",
"description": "description",
"operations": {
"commandName1": {
"httpMethod": "POST",
"uri": "some/uri/to/some/resource/{value}",
"summary": "description",
"parameters": {
"value": {
"location": "uri",
"description": "description"
}
}
},
"commandName2": {
"httpMethod": "POST",
"uri": "some/uri/to/some/resource/{value}",
"summary": "description",
"parameters": {
"value": {
"location": "uri",
"description": "description"
}
}
}
}
}
и код, который использует это выглядит примерно так:
$client = new Client(); // instance of Guzzle\Service\Client
$this->client->setDefaultOption(
'auth',
array('admin', 'admin', 'Basic')
);
$this->client->setDefaultOption(
'headers',
array('Accept' => 'text/html', 'Content-Type' => 'text/html')
);
$description = ServiceDescription::factory('/path/to/json/file/with/routes');
$client->setDescription($description);
$params = array(
'command.request_options' = array(
'timeout' => 5,
'connect_timeout' => 2
)
);
$command = $client->getCommand('commandName1', $params);
$command->prepare();
$client->execute($command);
Как вы можете видеть, я указать Content-Type
и Accept
заголовки в PHP-коде. Есть ли способ переместить эту информацию в файл JSON и указать разные значения для каждой операции? Например: я хочу, чтобы «commandName1» имел HTML как тип содержимого, но «commandName2» имел JSON.
Я хочу сделать это, чтобы избежать много дублирования кода.
Я смотрел в Интернете и в документации Guzzle последние 2 часа и подошел пустой. Однако, на мой взгляд, документация плохо написана , и я пропустил вещи в прошлом, читая ее. Так что это очень возможно, это произошло снова.
Неужели кому-нибудь приходилось делать что-то подобное? Как вы его решили? Заранее спасибо.
= «плохо написано» Я на самом деле означает, что каждая часть неполна. Кажется, что каждая глава затрагивает тему, но НИКОГДА не предоставляет фактически полного или подробного описания параметров, методов и т. Д. Или его полных возможностей. Существует NO CODE SNIPPET, который является SSCCE, так что вы можете видеть, как он работает перед вашими глазами менее чем за 2 минуты копирования. Но это еще один вопрос ...
Согласитесь с плохо написанной документацией ... – drj201