{% macro icon_copy() %}{% endmacro %} {% macro icon_check() %}{% endmacro %} {% macro icon_play() %}{% endmacro %} {% macro chevron() %}{% endmacro %} {% macro copy_button() %}{% endmacro %} {% macro code_lines(lines) %} {% for line in lines %}
{{ loop.index }}{{ line }}
{% endfor %} {% endmacro %} {% macro fields_block(block) %} {% if block %}
{{ block.label }} {% if block.model %}· {{ block.model }}{% endif %} {% if block.content_type %}{{ block.content_type }}{% endif %}
{% for field in block.fields %}
{{ field.name }} {{ field.caption }}
{% if field.required %}required{% endif %}
{% endfor %} {% if block.wildcard %}
propertyName anything
{% endif %}
{% endif %} {% endmacro %} {{ title }} {% if favicon %} {% endif %}

{{ title }}

v{{ version }} · {{ overview_summary }}
{% for op in operations %}
{{ op.method }} {{ op.route }} {% if op.openapi_path != op.route %} {% endif %} {% if op.undocumented %}undocumented{% endif %}

{{ op.summary }}

{% if op.description %}

{{ op.description }}

{% endif %}
Handled by {{ op.handler }}
{{ fields_block(op.params) }} {{ fields_block(op.body) }} {% if op.responses %}
Responses
{% for resp in op.responses %}
{{ resp.status }}{{ resp.description }}
{% endfor %}
{% endif %}
{{ op.method }} {{ op.relative_path }}
{{ copy_button() }}
{% for panel in op.panels %}
{% if panel.json is not none %} Editable: Test Request sends exactly what's here {% else %} {{ code_lines(panel.lines) }} {% endif %}
{% endfor %}
200 Example Response
{{ copy_button() }}
{% if op.response_lines %} {{ code_lines(op.response_lines) }} {% else %}
No Body
{% endif %}
{% endfor %} {% for ws in sockets %}
WS{{ ws.route }}

{{ ws.route }}

{% if ws.docstring %}

{{ ws.docstring }}

{% endif %}
Handled by {{ ws.handler }}
Subdomain {{ ws.subdomain }}
Connect
{{ copy_button() }}
{{ code_lines(ws.lines) }}
Connection Log
Not connected
{% endfor %} {% if not operations and not sockets %}

No routes registered yet. Call app.GET/POST/... or app.schema.GET/POST/... to see them here.

{% endif %}