Beispiel #1
0
    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)
Beispiel #2
0
    def __init__(self,
                 media_type=DEFAULT_MEDIA_TYPE,
                 before=None,
                 after=None,
                 request_type=Request,
                 response_type=Response,
                 middleware=None,
                 router=None):
        self._sinks = []
        self._media_type = media_type

        self._before = helpers.prepare_global_hooks(before)
        self._after = helpers.prepare_global_hooks(after)

        # set middleware
        self._middleware = helpers.prepare_middleware(middleware)

        self._router = router or routing.DefaultRouter()

        self._request_type = request_type
        self._response_type = response_type

        self._error_handlers = []
        self._serialize_error = helpers.default_serialize_error
        self.req_options = RequestOptions()
Beispiel #3
0
    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)