async def wrapper(*args, **kwargs) -> typing.Any: request = args[0] if request.method.lower() == method.lower(): handler = await bound_params(func, request) # type: ignore return await handler(*args, **kwargs) if request.method == "OPTIONS": return Response(headers={"Allow": method}) return Response(status_code=405, headers={"Allow": method})
async def app(scope, receive, send): request = Request(scope, receive) mycookie = request.cookies.get("mycookie") if mycookie: response = Response(mycookie, media_type="text/plain") else: response = Response("Hello, world!", media_type="text/plain") response.set_cookie("mycookie", "Hello, cookies!") await response(scope, receive, send)
async def options(self) -> Response: """Handle responding to requests for the OPTIONS HTTP verb.""" return Response(headers={"Allow": ", ".join(self.__methods__)})
async def http_method_not_allowed(self) -> Response: return Response(status_code=405, headers={"Allow": ", ".join(self.__methods__)})