mirror of
https://github.com/retailcrm/NelmioApiDocBundle.git
synced 2025-03-10 01:26:09 +03:00
added headers support
This commit is contained in:
parent
a7ad7ff144
commit
e141ffd291
@ -47,6 +47,12 @@ class ApiDoc
|
|||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
private $parameters = array();
|
private $parameters = array();
|
||||||
|
/**
|
||||||
|
* Headers that client can send.
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
private $headers = array();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var string
|
* @var string
|
||||||
@ -230,6 +236,19 @@ class ApiDoc
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (isset($data['headers'])) {
|
||||||
|
foreach ($data['headers'] as $header) {
|
||||||
|
if (!isset($header['name'])) {
|
||||||
|
throw new \InvalidArgumentException('A "header" element has to contain a "name" attribute');
|
||||||
|
}
|
||||||
|
|
||||||
|
$name = $header['name'];
|
||||||
|
unset($header['name']);
|
||||||
|
|
||||||
|
$this->addHeader($name, $header);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (isset($data['output'])) {
|
if (isset($data['output'])) {
|
||||||
$this->output = $data['output'];
|
$this->output = $data['output'];
|
||||||
}
|
}
|
||||||
@ -457,6 +476,15 @@ class ApiDoc
|
|||||||
$this->parameters = $parameters;
|
$this->parameters = $parameters;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param $name
|
||||||
|
* @param array $header
|
||||||
|
*/
|
||||||
|
public function addHeader($name, array $header)
|
||||||
|
{
|
||||||
|
$this->headers[$name] = $header;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the response data as processed by the parsers - same format as parameters
|
* Sets the response data as processed by the parsers - same format as parameters
|
||||||
*
|
*
|
||||||
@ -611,8 +639,17 @@ class ApiDoc
|
|||||||
return $this->parameters;
|
return $this->parameters;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function getHeaders()
|
||||||
|
{
|
||||||
|
return $this->headers;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param boolean $deprecated
|
* @param boolean $deprecated
|
||||||
|
* @return $this
|
||||||
*/
|
*/
|
||||||
public function setDeprecated($deprecated)
|
public function setDeprecated($deprecated)
|
||||||
{
|
{
|
||||||
@ -663,6 +700,10 @@ class ApiDoc
|
|||||||
$data['parameters'] = $parameters;
|
$data['parameters'] = $parameters;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($headers = $this->headers) {
|
||||||
|
$data['headers'] = $headers;
|
||||||
|
}
|
||||||
|
|
||||||
if ($requirements = $this->requirements) {
|
if ($requirements = $this->requirements) {
|
||||||
$data['requirements'] = $requirements;
|
$data['requirements'] = $requirements;
|
||||||
}
|
}
|
||||||
|
@ -139,6 +139,29 @@
|
|||||||
</table>
|
</table>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
|
||||||
|
{% if data.headers is defined and data.headers is not empty %}
|
||||||
|
<h4>Headers</h4>
|
||||||
|
<table class="fullwidth">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Name</th>
|
||||||
|
<th>Required?</th>
|
||||||
|
<th>Description</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
{% for name, infos in data.headers %}
|
||||||
|
<tr>
|
||||||
|
<td>{{ name }}</td>
|
||||||
|
<td>{{ infos.required is defined and infos.required == 'true' ? 'true' : 'false'}}</td>
|
||||||
|
<td>{{ infos.description is defined ? infos.description|trans : ''}}</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
{% if data.parsedResponseMap is defined and data.parsedResponseMap is not empty %}
|
{% if data.parsedResponseMap is defined and data.parsedResponseMap is not empty %}
|
||||||
<h4>Return</h4>
|
<h4>Return</h4>
|
||||||
<table class='fullwidth'>
|
<table class='fullwidth'>
|
||||||
@ -282,6 +305,18 @@
|
|||||||
</p>
|
</p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
{% if data.headers is defined %}
|
||||||
|
|
||||||
|
{% for name, infos in data.headers %}
|
||||||
|
<p class="tuple">
|
||||||
|
<input type="text" class="key" value="{{ name }}" />
|
||||||
|
<span>=</span>
|
||||||
|
<input type="text" class="value" value="{% if infos.default is defined %}{{ infos.default }}{% endif %}" placeholder="Value" /> <span class="remove">-</span>
|
||||||
|
</p>
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
<p class="tuple">
|
<p class="tuple">
|
||||||
<input type="text" class="key" placeholder="Key" />
|
<input type="text" class="key" placeholder="Key" />
|
||||||
<span>=</span>
|
<span>=</span>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user