Hide “_scheme” in the list of requirements per URL

+ disable sandbox if the scheme of the URL doesn’t match the scheme, the
documentation is opened in
This commit is contained in:
Simon Schick 2013-12-18 16:58:28 +01:00 committed by William DURAND
parent 627130637d
commit 912178dc88
4 changed files with 85 additions and 96 deletions

View File

@ -47,7 +47,7 @@ class PhpDocHandler implements HandlerInterface
// requirements // requirements
$requirements = $annotation->getRequirements(); $requirements = $annotation->getRequirements();
foreach ($route->getRequirements() as $name => $value) { foreach ($route->getRequirements() as $name => $value) {
if (!isset($requirements[$name]) && '_method' !== $name) { if (!isset($requirements[$name]) && '_method' !== $name && '_scheme' !== $name) {
$requirements[$name] = array( $requirements[$name] = array(
'requirement' => $value, 'requirement' => $value,
'dataType' => '', 'dataType' => '',

View File

@ -193,101 +193,105 @@
{% if enableSandbox %} {% if enableSandbox %}
<div class="pane sandbox"> <div class="pane sandbox">
<form method="{{ data.method|upper }}" action="{% if data.host is defined %}{{ data.https ? 'https://' : 'http://' }}{{ data.host }}{% endif %}{{ data.uri }}"> {% if app.request.secure != data.https %}
<fieldset class="parameters"> Please reload the documentation using the scheme {% if data.https %}HTTPS{% else %}HTTP{% endif %} if you want to use the sandbox.
<legend>Input</legend> {% else %}
{% if data.requirements is defined %} <form method="{{ data.method|upper }}" action="{% if data.host is defined %}{{ data.https ? 'https://' : 'http://' }}{{ data.host }}{% endif %}{{ data.uri }}">
<h4>Requirements</h4> <fieldset class="parameters">
{% for name, infos in data.requirements %} <legend>Input</legend>
{% if data.requirements is defined %}
<h4>Requirements</h4>
{% for name, infos in data.requirements %}
<p class="tuple">
<input type="text" class="key" value="{{ name }}" placeholder="Key" />
<span>=</span>
<input type="text" class="value" placeholder="{% if infos.description is defined %}{{ infos.description }}{% else %}Value{% endif %}" {% if infos.default is defined %} value="{{ infos.default }}" {% endif %}/> <span class="remove">-</span>
</p>
{% endfor %}
{% endif %}
{% if data.filters is defined %}
<h4>Filters</h4>
{% for name, infos in data.filters %}
<p class="tuple">
<input type="text" class="key" value="{{ name }}" placeholder="Key" />
<span>=</span>
<input type="text" class="value" placeholder="{% if infos.description is defined %}{{ infos.description }}{% else %}Value{% endif %}" {% if infos.default is defined %} value="{{ infos.default }}" {% endif %}/> <span class="remove">-</span>
</p>
{% endfor %}
{% endif %}
{% if data.parameters is defined %}
<h4>Parameters</h4>
{% for name, infos in data.parameters %}
{% if not infos.readonly %}
<p class="tuple">
<input type="text" class="key" value="{{ name }}" placeholder="Key" />
<span>=</span>
<input type="text" class="value" placeholder="{% if infos.dataType %}[{{ infos.dataType }}] {% endif %}{% if infos.format %}{{ infos.format }}{% endif %}{% if infos.description %}{{ infos.description }}{% else %}Value{% endif %}" {% if infos.default is defined %} value="{{ infos.default }}" {% endif %}/> <span class="remove">-</span>
</p>
{% endif %}
{% endfor %}
<button class="add">New parameter</button>
{% endif %}
</fieldset>
<fieldset class="headers">
<legend>Headers</legend>
{% if acceptType %}
<p class="tuple"> <p class="tuple">
<input type="text" class="key" value="{{ name }}" placeholder="Key" /> <input type="text" class="key" value="Accept" />
<span>=</span> <span>=</span>
<input type="text" class="value" placeholder="{% if infos.description is defined %}{{ infos.description }}{% else %}Value{% endif %}" {% if infos.default is defined %} value="{{ infos.default }}" {% endif %}/> <span class="remove">-</span> <input type="text" class="value" value="{{ acceptType }}" /> <span class="remove">-</span>
</p>
{% endfor %}
{% endif %}
{% if data.filters is defined %}
<h4>Filters</h4>
{% for name, infos in data.filters %}
<p class="tuple">
<input type="text" class="key" value="{{ name }}" placeholder="Key" />
<span>=</span>
<input type="text" class="value" placeholder="{% if infos.description is defined %}{{ infos.description }}{% else %}Value{% endif %}" {% if infos.default is defined %} value="{{ infos.default }}" {% endif %}/> <span class="remove">-</span>
</p>
{% endfor %}
{% endif %}
{% if data.parameters is defined %}
<h4>Parameters</h4>
{% for name, infos in data.parameters %}
{% if not infos.readonly %}
<p class="tuple">
<input type="text" class="key" value="{{ name }}" placeholder="Key" />
<span>=</span>
<input type="text" class="value" placeholder="{% if infos.dataType %}[{{ infos.dataType }}] {% endif %}{% if infos.format %}{{ infos.format }}{% endif %}{% if infos.description %}{{ infos.description }}{% else %}Value{% endif %}" {% if infos.default is defined %} value="{{ infos.default }}" {% endif %}/> <span class="remove">-</span>
</p> </p>
{% endif %} {% endif %}
{% endfor %}
<button class="add">New parameter</button>
{% endif %}
</fieldset>
<fieldset class="headers">
<legend>Headers</legend>
{% if acceptType %}
<p class="tuple"> <p class="tuple">
<input type="text" class="key" value="Accept" /> <input type="text" class="key" placeholder="Key" />
<span>=</span> <span>=</span>
<input type="text" class="value" value="{{ acceptType }}" /> <span class="remove">-</span> <input type="text" class="value" placeholder="Value" /> <span class="remove">-</span>
</p> </p>
{% endif %}
<p class="tuple"> <button class="add">New header</button>
<input type="text" class="key" placeholder="Key" /> </fieldset>
<span>=</span>
<input type="text" class="value" placeholder="Value" /> <span class="remove">-</span>
</p>
<button class="add">New header</button> <fieldset class="request-content">
</fieldset> <legend>Content</legend>
<fieldset class="request-content"> <textarea class="content" placeholder="Content set here will override the parameters that do not match the url"></textarea>
<legend>Content</legend>
<textarea class="content" placeholder="Content set here will override the parameters that do not match the url"></textarea> <p class="tuple">
<input type="text" class="key content-type" value="Content-Type" disabled="disabled" />
<span>=</span>
<input type="text" class="value" placeholder="Value" />
<button class="set-content-type">Set header</button> <small>Replaces header if set</small>
</p>
</fieldset>
<p class="tuple"> <div class="buttons">
<input type="text" class="key content-type" value="Content-Type" disabled="disabled" /> <input type="submit" value="Try!" />
<span>=</span> </div>
<input type="text" class="value" placeholder="Value" /> </form>
<button class="set-content-type">Set header</button> <small>Replaces header if set</small>
</p>
</fieldset>
<div class="buttons"> <script type="text/x-tmpl" class="tuple_template">
<input type="submit" value="Try!" /> <p class="tuple">
<input type="text" class="key" placeholder="Key" />
<span>=</span>
<input type="text" class="value" placeholder="Value" /> <span class="remove">-</span>
</p>
</script>
<div class="result">
<h4>Request URL</h4>
<pre class="url"></pre>
<h4>Response Headers&nbsp;<small>[<a href="" class="to-expand">Expand</a>]</small></h4>
<pre class="headers to-expand"></pre>
<h4>Response Body&nbsp;<small>[<a href="" class="to-raw">Raw</a>]</small></h4>
<pre class="response prettyprint"></pre>
</div> </div>
</form> {% endif %}
<script type="text/x-tmpl" class="tuple_template">
<p class="tuple">
<input type="text" class="key" placeholder="Key" />
<span>=</span>
<input type="text" class="value" placeholder="Value" /> <span class="remove">-</span>
</p>
</script>
<div class="result">
<h4>Request URL</h4>
<pre class="url"></pre>
<h4>Response Headers&nbsp;<small>[<a href="" class="to-expand">Expand</a>]</small></h4>
<pre class="headers to-expand"></pre>
<h4>Response Body&nbsp;<small>[<a href="" class="to-raw">Raw</a>]</small></h4>
<pre class="response prettyprint"></pre>
</div>
</div> </div>
{% endif %} {% endif %}
</div> </div>

View File

@ -401,12 +401,6 @@ nested_array[]:
### `ANY` /secure-route ### ### `ANY` /secure-route ###
#### Requirements ####
**_scheme**
- Requirement: https
### `ANY` /yet-another/{id} ### ### `ANY` /yet-another/{id} ###

View File

@ -707,15 +707,6 @@ With multiple lines.',
array( array(
'method' => 'ANY', 'method' => 'ANY',
'uri' => '/secure-route', 'uri' => '/secure-route',
'requirements' =>
array(
'_scheme' =>
array(
'requirement' => 'https',
'dataType' => '',
'description' => '',
),
),
'https' => true, 'https' => true,
'authentication' => false, 'authentication' => false,
'authenticationRoles' => array(), 'authenticationRoles' => array(),