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
|
||||
*/
|
||||
private $parameters = array();
|
||||
/**
|
||||
* Headers that client can send.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
private $headers = array();
|
||||
|
||||
/**
|
||||
* @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'])) {
|
||||
$this->output = $data['output'];
|
||||
}
|
||||
@ -457,6 +476,15 @@ class ApiDoc
|
||||
$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
|
||||
*
|
||||
@ -611,8 +639,17 @@ class ApiDoc
|
||||
return $this->parameters;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function getHeaders()
|
||||
{
|
||||
return $this->headers;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param boolean $deprecated
|
||||
* @return $this
|
||||
*/
|
||||
public function setDeprecated($deprecated)
|
||||
{
|
||||
@ -663,6 +700,10 @@ class ApiDoc
|
||||
$data['parameters'] = $parameters;
|
||||
}
|
||||
|
||||
if ($headers = $this->headers) {
|
||||
$data['headers'] = $headers;
|
||||
}
|
||||
|
||||
if ($requirements = $this->requirements) {
|
||||
$data['requirements'] = $requirements;
|
||||
}
|
||||
|
@ -139,6 +139,29 @@
|
||||
</table>
|
||||
{% 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 %}
|
||||
<h4>Return</h4>
|
||||
<table class='fullwidth'>
|
||||
@ -282,6 +305,18 @@
|
||||
</p>
|
||||
{% 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">
|
||||
<input type="text" class="key" placeholder="Key" />
|
||||
<span>=</span>
|
||||
|
Loading…
x
Reference in New Issue
Block a user