We used to only look for examples in a few (sometimes arbitrary) places, and we didn't support showing several examples in most cases. This is intended to fix this. In the process we try to deduplicate code to make sure that we use the same logic everywhere. Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
64 lines
2.1 KiB
HTML
64 lines
2.1 KiB
HTML
{{/*
|
|
|
|
Render the response part of a single HTTP API operation, given:
|
|
|
|
* `responses`: OpenAPI data specifying the responses
|
|
* `anchor_base`: a prefix to add to the HTML anchors generated for each object
|
|
|
|
This template renders:
|
|
* a summary of all the different responses
|
|
* details of the body for each response code
|
|
* body parameters, which may be more complex, containing nested objects
|
|
* response body examples
|
|
|
|
*/}}
|
|
|
|
{{ $responses := .responses }}
|
|
{{ $anchor_base := .anchor_base }}
|
|
|
|
<h2>Responses</h2>
|
|
|
|
<table class="response-table">
|
|
<thead>
|
|
<tr>
|
|
<th class="col-status">Status</th>
|
|
<th class="col-status-description">Description</th>
|
|
</tr>
|
|
</thead>
|
|
|
|
{{ range $code, $response := $responses }}
|
|
|
|
<tr>
|
|
<td><code>{{ $code }}</code></td>
|
|
<td>{{ $response.description | markdownify }}</td>
|
|
</tr>
|
|
|
|
{{ end }}
|
|
|
|
</table>
|
|
|
|
{{ range $code, $response := $responses }}
|
|
{{ if $response.content }}
|
|
{{ $anchor := printf "%s_response-%s" $anchor_base $code }}
|
|
<h3>{{$code}} response</h3>
|
|
{{/* Display defined headers */}}
|
|
{{ if $response.headers }}
|
|
{{/* build a dict mapping from name->schema, which render-object-table expects */}}
|
|
{{ $headers_dict := dict }}
|
|
{{ range $header_name,$header_props := $response.headers }}
|
|
{{/*
|
|
merge the schema at the same level as the rest of the other fields because that is
|
|
what `render-object-table` expects. Put the schema first so examples in it are
|
|
overwritten.
|
|
*/}}
|
|
{{ $header_schema := merge $header_props.schema $header_props }}
|
|
{{ $headers_dict = merge $headers_dict (dict $header_name $header_schema )}}
|
|
{{ end }}
|
|
|
|
{{/* and render the headers */}}
|
|
{{ partial "openapi/render-object-table" (dict "title" "Headers" "properties" $headers_dict) }}
|
|
{{ end }}
|
|
|
|
{{ partial "openapi/render-media-type-objects" (dict "content" $response.content "kind" "response" "anchor_base" $anchor) }}
|
|
{{ end }}
|
|
{{ end }}
|