matrix-spec/layouts/_partials/openapi/render-api.html
Andrew Morgan 82a67a1fab Store each endpoint's metadata in a slice on Page
Such that we can later construct the table of contents with the data.
2025-12-05 15:11:17 +00:00

57 lines
1.6 KiB
HTML

{{/*
Render an HTTP API, given:
* `api_data`: the OpenAPI data
* `base_url`: the base URL: that is, the part we glue onto the front
of each value in `paths` to get a complete URL.
* `anchor_base`: an optional prefix for the HTML IDs generated by
this template.
This template replaces the old {{*_http_api}} template.
*/}}
{{ $api_data := index .api_data }}
{{ $base_url := .base_url }}
{{ $anchor_base := .anchor_base }}
{{ $page := .page }}
{{ range $path_name, $path_data := $api_data.paths }}
{{ $endpoint := delimit (slice $base_url $path_name ) "" }}
{{/* note that a `paths` entry can be a $ref */}}
{{ $params := dict "endpoint" $endpoint }}
{{ with $path_data.get }}
{{ $operation_params := merge $params (dict "method" "GET" "operation_data" . "anchor_base" $anchor_base "page" $page) }}
{{ partial "openapi/render-operation" $operation_params }}
{{ end }}
{{ with $path_data.post }}
{{ $operation_params := merge $params (dict "method" "POST" "operation_data" . "anchor_base" $anchor_base "page" $page) }}
{{ partial "openapi/render-operation" $operation_params }}
{{ end }}
{{ with $path_data.put }}
{{ $operation_params := merge $params (dict "method" "PUT" "operation_data" . "anchor_base" $anchor_base "page" $page) }}
{{ partial "openapi/render-operation" $operation_params }}
{{ end }}
{{ with $path_data.delete }}
{{ $operation_params := merge $params (dict "method" "DELETE" "operation_data" . "anchor_base" $anchor_base "page" $page) }}
{{ partial "openapi/render-operation" $operation_params }}
{{ end }}
{{ end }}