Source code for rororo.openapi.contexts

from contextlib import contextmanager
from typing import Iterator

from aiohttp import web

from rororo.openapi.data import OpenAPIContext
from rororo.openapi.utils import get_openapi_context


[docs]@contextmanager def openapi_context(request: web.Request) -> Iterator[OpenAPIContext]: """Context manager to access valid OpenAPI data for given request. If request validation done well and request to OpenAPI operation view handler is valid one, view handler may need to use request data for its needs. To achieve it use given context manager as, .. code-block:: python from rororo import openapi_context, OperationTableDef operations = OperationTableDef() @operations.register async def hello_world(request: web.Request) -> web.Response: with openapi_context(request) as context: ... If using context managers inside of view handlers considered as unwanted, there is an other option in :func:`rororo.openapi.get_openapi_context` function. """ yield get_openapi_context(request)