Source code for magpie.api.swagger.views

import os
from typing import TYPE_CHECKING

from magpie.api import schemas as s
from magpie.constants import MAGPIE_MODULE_DIR
from magpie.utils import get_magpie_url

if TYPE_CHECKING:
    from pyramid.request import Request

    from magpie.typedefs import JSON


@s.SwaggerAPI.get(tags=[s.APITag], api_security=s.SecurityEveryoneAPI,
                  response_schemas=s.SwaggerAPI_GET_responses)
[docs] def api_swagger(request): # noqa: F811 """ Swagger UI route to display the Magpie REST API schemas. """ swagger_versions_dir = "{}".format(os.path.abspath(os.path.join(MAGPIE_MODULE_DIR, "ui/swagger/versions"))) swagger_ui_path = s.SwaggerGenerator.path.lstrip("/") return_data = {"api_title": s.TitleAPI, "api_schema_path": swagger_ui_path, "api_schema_versions_dir": swagger_versions_dir} return return_data
@s.SwaggerGenerator.get(tags=[s.APITag], api_security=s.SecurityEveryoneAPI, response_schemas=s.SwaggerAPI_GET_responses)
[docs] def api_schema(request): # type: (Request) -> JSON """ Return JSON Swagger specifications of Magpie REST API. """ swagger_base_spec = { "host": get_magpie_url(request), "schemes": [request.scheme] } return s.generate_api_schema(swagger_base_spec)