docs: async def handle_request(self, request: Request) -> Response:
          """
          coroutine: This method is called by Transport
          implementation to handle the actual request.
          It returns a webtype.Response object.
          """
          # Get handler
          try:
              try:
                  self._set_ctx(request)
                  handler = self.router.get_handler_for_request(request)
                  request.app = self
                  response = await handler(request)
                  response.app = self
              except ResponseError as r:
                  parser = app_parsers.get(request.content_type, None)
  
                  # Content-Type of an error response will be the same as the incoming request
                  # unless a parser for that content type is not found.
                  if not parser:
                      content_type = r.content_type
                      if not content_type:
                          content_type = self.default_content_type
                  else:
                      content_type = request.content_type
                  response = Response(
                      headers=r.headers, correlation_id=r.correlation_id, body=r.body,
                      status=r.status, content_type=content_type
                  )
                  response.app = self
                  if r.log:
                      exc_info = sys.exc_info()
                      self.logger.log_exception(request, exc_info, level='warning')
              # invoke serialization (json) to make sure it works
              _ = response.body
  
          except CancelledError:
              # This error can happen if a client closes the connection
              # The response shouldnt really ever be used
              return None
  
          except asyncio.TimeoutError:
              response = Response(status=HTTPStatus.GATEWAY_TIMEOUT,
                                  body={'message': 'Gateway Timeout'})
              response.app = self
  
          except NackMePleaseError:
              """ See message where this error is defined """
              raise
  
          except Exception:
              exc_info = sys.exc_info()
              self.logger.log_exception(request, exc_info)
              response = Response(status=HTTPStatus.INTERNAL_SERVER_ERROR,
                                  body={'message': 'Server Error'})
              response.app = self
          if not response.correlation_id:
              response.correlation_id = request.correlation_id
  
          if self._cors_handler is not None:
              self._cors_handler.add_cors_headers(request, response)
  
          # add default headers
          response.headers = {**self.default_headers, **response.headers}
  
          return response