pointsecio.middleware¶
Submodules¶
Package Contents¶
Classes¶
High level PointSecIO middleware that manages a list o middlewares wrapped around an |
|
Helper class that provides a standard way to create an ABC using |
- class pointsecio.middleware.PointSecIOMiddleware(app: starlette.types.ASGIApp, middlewares: Optional[List[Type[starlette.types.ASGIApp]]] = None)¶
High level PointSecIO middleware that manages a list o middlewares wrapped around an application.
- Parameters
app – App to wrap middleware around.
middlewares – List of middlewares to wrap around app. The list should be ordered from outer to inner middleware.
- default_middlewares¶
- add_api(self, specification: Union[pathlib.Path, str, dict], base_path: Optional[str] = None, arguments: Optional[dict] = None, **kwargs) None¶
Add an API to the underlying routing middleware based on a OpenAPI spec.
- Parameters
specification – OpenAPI spec as dict or path to file.
base_path – Base path where to add this API.
arguments – Jinja arguments to replace in the spec.
- async __call__(self, scope: starlette.types.Scope, receive: starlette.types.Receive, send: starlette.types.Send) None¶
- class pointsecio.middleware.SwaggerUIMiddleware(app: starlette.types.ASGIApp)¶
Bases:
pointsecio.middleware.base.AppMiddlewareHelper class that provides a standard way to create an ABC using inheritance.
Middleware that hosts a swagger UI.
- Parameters
app – app to wrap in middleware.
- __slots__ = []¶
- add_api(self, specification: Union[pathlib.Path, str, dict], base_path: Optional[str] = None, arguments: Optional[dict] = None, **kwargs) None¶
Add an API to the router based on a OpenAPI spec.
- Parameters
specification – OpenAPI spec as dict or path to file.
base_path – Base path where to add this API.
arguments – Jinja arguments to replace in the spec.
- async __call__(self, scope: starlette.types.Scope, receive: starlette.types.Receive, send: starlette.types.Send) None¶
- async default_fn(self, _scope: starlette.types.Scope, receive: starlette.types.Receive, send: starlette.types.Send) None¶
Callback to call next app as default when no matching route is found.
Unfortunately we cannot just pass the next app as default, since the router manipulates the scope when descending into mounts, losing information about the base path. Therefore, we use the original scope instead.
This is caused by https://github.com/encode/starlette/issues/1336.