{{/* Render the parameters of a given type, given: * `parameters`: OpenAPI data specifying the parameters * `type`: the type of parameters to render: "header", "path", "query" * `caption`: caption to use for the table * `path`: the path where this definition was found, to enable us to resolve "$ref" This template renders a single table containing parameters of the given type. */}} {{ $parameters := .parameters }} {{ $type := .type }} {{ $caption := .caption }} {{ $path := .path }} {{/* build a dict mapping from name->parameter, which render-object-table expects */}} {{ $param_dict := dict }} {{ range $parameter := $parameters }} {{/* Per https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#operation-object: the parameters can be reference objects; resolve them now. */}} {{ $parameter = partial "openapi/resolve-ref-object" (dict "schema" $parameter "path" $path) }} {{ if (eq $parameter.in $type) }} {{/* 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. */}} {{ $param := merge $parameter.schema $parameter }} {{ $param_dict = merge $param_dict (dict $parameter.name $param )}} {{ end }} {{ end }} {{/* and render the parameters */}} {{ partial "openapi/render-object-table" (dict "title" $caption "properties" $param_dict) }}