* Use the resolve-refs partial as soon as possible Call it right after accessing the site.Data, since it is recursing it will solve all references in the tree. That way we don't need to wonder where to call it, we trust the validators that the refs will be used in the right place. * Enable strict $ref rule in OpenAPI validator * Document use of $ref to compose examples * Fix schema path in event-fields shortcode Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
87 lines
2.7 KiB
HTML
87 lines
2.7 KiB
HTML
{{/*
|
|
|
|
Render a single HTTP API operation: that is, a method+endpoint combination, given:
|
|
|
|
* `method`: the method, e.g. GET, PUT
|
|
* `endpoint`: the endpoint
|
|
* `operation_data`: the OpenAPI data for the operation
|
|
|
|
This template renders the operation as a `<section>` containing:
|
|
|
|
* an `<h1>` heading containing the method and endpoint
|
|
* a `<details>` element containing the details, including:
|
|
* operation description
|
|
* basic info about the operation
|
|
* request details
|
|
* response details
|
|
|
|
*/}}
|
|
|
|
{{ $method := .method }}
|
|
{{ $endpoint := .endpoint }}
|
|
{{ $operation_data := .operation_data }}
|
|
{{ $anchor := anchorize $endpoint }}
|
|
|
|
<section class="rendered-data http-api {{ $method }}">
|
|
|
|
<details {{ if not site.Params.ui.rendered_data_collapsed }}open{{ end }}>
|
|
<summary>
|
|
|
|
<h1 id="{{ lower $method }}{{ $anchor }}">
|
|
<span class="http-api-method {{ $method }}">{{ $method }}</span>
|
|
<span class="endpoint{{ if $operation_data.deprecated }} deprecated-inline{{ end }}">{{ $endpoint }}</span>
|
|
</h1>
|
|
</summary>
|
|
|
|
<hr/>
|
|
|
|
{{ if $operation_data.deprecated }}
|
|
{{ partial "alert" (dict "type" "warning" "omit_title" "true" "content" "This API is deprecated and will be removed from a future release.") }}
|
|
{{ end }}
|
|
|
|
{{ if (index $operation_data "x-addedInMatrixVersion") }}
|
|
{{ partial "added-in" (dict "v" (index $operation_data "x-addedInMatrixVersion")) }}
|
|
{{ end }}
|
|
{{ if (index $operation_data "x-changedInMatrixVersion") }}
|
|
{{ partial "changed-in" (dict "changes_dict" (index $operation_data "x-changedInMatrixVersion")) }}
|
|
{{ end -}}
|
|
|
|
<p>{{ $operation_data.description | markdownify }}</p>
|
|
|
|
|
|
<table class="basic-info">
|
|
<tr>
|
|
<th>Rate-limited:</th>
|
|
{{ $rate_limited := index $operation_data.responses "429" }}
|
|
<td>{{ if $rate_limited }}Yes{{ else }}No{{ end }}</td>
|
|
</tr>
|
|
<tr>
|
|
<th>Requires authentication:</th>
|
|
{{/*
|
|
Authentication is defined with the `security` key. We assume that the
|
|
key is not set if no authentication is necessary. If the key is set,
|
|
authentication is required unless it contains an item that is an empty
|
|
object.
|
|
*/}}
|
|
{{ $requires_authentication := "Yes" }}
|
|
{{ if $operation_data.security }}
|
|
{{ range $operation_data.security }}
|
|
{{ if eq (len (index $operation_data.security 0)) 0 }}
|
|
{{ $requires_authentication = "Optional" }}
|
|
{{ end }}
|
|
{{ end }}
|
|
{{ else }}
|
|
{{ $requires_authentication = "No" }}
|
|
{{ end }}
|
|
<td>{{ $requires_authentication }}</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<hr/>
|
|
{{ partial "openapi/render-request" (dict "parameters" $operation_data.parameters "request_body" $operation_data.requestBody "anchor_base" $anchor ) }}
|
|
<hr/>
|
|
{{ partial "openapi/render-responses" (dict "responses" $operation_data.responses "anchor_base" $anchor ) }}
|
|
|
|
</details>
|
|
|
|
</section>
|