def process_request(self, request): """ Handle received request from user. :param request: request from user. """ logger.info("\"{method} {url}\" args={args}".format( method=request.method, url=request.url, args=request.args)) response = Response() try: url = self.extract_url(request) handler, args, kwargs = self.search_handler(request, url) # Invoke handler for request if handler: for middleware in self.middlewares: middleware.process_request(request, handler) # Search serializer for response format = request.get_argument('format') serializer = handler.get_renderer(format, *args, **kwargs) response.content = handler.dispatch(request, *args, **kwargs) else: raise NotSpecifiedHandler() except BaseAPIException as exc: logger.exception(exc) response.wrap_exception(exc) serializer = JSONRenderer() response.append_request(request) return serializer.render(response.content)
def process_request(self, request): """ Handle received request from user. :param request: request from user. """ logger.info("\"{method} {url}\" args={args}".format( method=request.method, url=request.url, args=request.args) ) response = Response() try: url = self.extract_url(request) handler, args, kwargs = self.search_handler(request, url) # Invoke handler for request if handler: for middleware in self.middlewares: middleware.process_request(request, handler) # Search serializer for response format = request.get_argument('format') serializer = handler.get_renderer(format, *args, **kwargs) response.content = handler.dispatch(request, *args, **kwargs) else: raise NotSpecifiedHandler() except BaseAPIException as exc: logger.exception(exc) response.wrap_exception(exc) serializer = JSONRenderer() response.append_request(request) return serializer.render(response.content)
def test_wrap_exception(self): exception = BaseAPIException() response = Response() response.wrap_exception(exception) self.assertIn('detail', response._content) self.assertEqual(response._content['detail'], exception.detail)