Skip to content

flask_restx_marshmallow.api ¤

patched api of flask_restx_marshmallow.

Api ¤

Bases: Api

Patched API.

__schema__ ¤

__schema__() -> OpenAPI

The Swagger specifications/schema for this API.

Raises:

Type Description
ValueError

Unable to render schema

Returns:

Name Type Description
OpenAPI OpenAPI

swagger

Source code in flask_restx_marshmallow/api.py
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
@cached_property
def __schema__(self: Self) -> "OpenAPI":
    """The Swagger specifications/schema for this API.

    Raises:
        ValueError: Unable to render schema

    Returns:
        OpenAPI: swagger
    """
    if not self._schema:
        try:
            self._schema = Swagger(self).as_dict()
        except Exception as exc:
            msg = "Unable to render schema"
            logger.exception(msg)
            raise ValueError(msg) from exc
    return self._schema

auth_render_swagger ¤

auth_render_swagger(
    func: Callable[
        [Callable[[Api], str | bytes]], Callable[[Api], T]
    ],
) -> None

Add decorator to render swagger ui.

Source code in flask_restx_marshmallow/api.py
136
137
138
139
140
141
def auth_render_swagger[T](
    self,
    func: Callable[[Callable[["Api"], str | bytes]], Callable[["Api"], T]],
) -> None:
    """Add decorator to render swagger ui."""
    self._swagger_auth_decorator = func

render_doc ¤

render_doc() -> str

Render doc.

Returns:

Name Type Description
str str

rendered doc

Source code in flask_restx_marshmallow/api.py
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
@override
def render_doc(self: Self) -> str:
    """Render doc.

    Returns:
        str: rendered doc
    """
    if (
        self._swagger_auth_decorator is None
        or current_app.config.get("DEBUG") is True
    ):
        return render_swagger_ui(self)
    return cast(
        "str",
        self._swagger_auth_decorator(render_swagger_ui)(self),
    )

render_json ¤

render_json() -> str | bytes

Render swagger json doc.

Returns:

Name Type Description
str str | bytes

rendered json

Source code in flask_restx_marshmallow/api.py
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
def render_json(self: Self) -> str | bytes:
    """Render swagger json doc.

    Returns:
        str: rendered json
    """
    if (
        self._swagger_auth_decorator is None
        or current_app.config.get("DEBUG") is True
    ):
        return render_swagger_json(self)
    return cast(
        "str | bytes",
        self._swagger_auth_decorator(render_swagger_json)(self),
    )

swagger_static ¤

swagger_static(filename: str) -> str

Swagger static file.

Parameters:

Name Type Description Default

filename ¤

str

filename

required

Returns:

Name Type Description
str str

url path

Source code in flask_restx_marshmallow/api.py
152
153
154
155
156
157
158
159
160
161
162
@apidoc.add_app_template_global
def swagger_static(filename: str) -> str:
    """Swagger static file.

    Args:
        filename (str): filename

    Returns:
        str: url path
    """
    return url_for("swagger_doc.static", filename=filename)