def __init__(self, media_type=DEFAULT_MEDIA_TYPE, request_type=Request, response_type=Response, middleware=None, router=None, independent_middleware=False): self._sinks = [] self._media_type = media_type self._static_routes = [] # set middleware self._middleware = helpers.prepare_middleware( middleware, independent_middleware=independent_middleware) self._independent_middleware = independent_middleware self._router = router or routing.DefaultRouter() self._router_search = helpers.make_router_search(self._router) self._request_type = request_type self._response_type = response_type self._error_handlers = [] self._serialize_error = helpers.default_serialize_error self.req_options = RequestOptions() self.resp_options = ResponseOptions() self.req_options.default_media_type = media_type self.resp_options.default_media_type = media_type # NOTE(kgriffs): Add default error handlers self.add_error_handler(falcon.HTTPError, self._http_error_handler) self.add_error_handler(falcon.HTTPStatus, self._http_status_handler)
def __init__( self, media_type=falcon.constants.DEFAULT_MEDIA_TYPE, request_type=Request, response_type=Response, middleware=None, router=None, independent_middleware=True, cors_enable=False, sink_before_static_route=True, ): self._sink_before_static_route = sink_before_static_route self._sinks = [] self._static_routes = [] self._sink_and_static_routes = () if cors_enable: cm = CORSMiddleware() if middleware is None: middleware = [cm] else: try: # NOTE(kgriffs): Check to see if middleware is an # iterable, and if so, append the CORSMiddleware # instance. iter(middleware) middleware = list(middleware) middleware.append(cm) except TypeError: # NOTE(kgriffs): Assume the middleware kwarg references # a single middleware component. middleware = [middleware, cm] # set middleware self._unprepared_middleware = [] self._independent_middleware = independent_middleware self.add_middleware(middleware) self._router = router or routing.DefaultRouter() self._router_search = self._router.find self._request_type = request_type self._response_type = response_type self._error_handlers = {} self._serialize_error = helpers.default_serialize_error self.req_options = RequestOptions() self.resp_options = ResponseOptions() self.req_options.default_media_type = media_type self.resp_options.default_media_type = media_type # NOTE(kgriffs): Add default error handlers self.add_error_handler(Exception, self._python_error_handler) self.add_error_handler(falcon.HTTPError, self._http_error_handler) self.add_error_handler(falcon.HTTPStatus, self._http_status_handler)
def options(self): if not self._options: self._options = ResponseOptions() return self._options