def wrapper(*args, **kwargs): req_args = request.args.to_dict() if 'args' in f.__code__.co_varnames: kwargs["args"] = req_args if 'headers_dict' in f.__code__.co_varnames: headers = {} for item in request.headers: headers.update({item[0]: item[1]}) kwargs["headers_dict"] = headers if 'headers' in f.__code__.co_varnames: kwargs["headers"] = request.headers if self._settings["enable_jsonp"] and 'jsonp' in req_args: return ResponseWrapperFactory.get_wrapper("jsonp").response_by_function_call(request.path, f, flags={'callback': req_args["jsonp"]}, *args, **kwargs) return self._response_wrapper.response_by_function_call(request.path, f, *args, **kwargs)
def __init__(self): self.cfg = Configuration.get_instance() self._log = alogger.getLogger(__name__, cfg=self.cfg) self._apply_settings() self._flask = Flask(__name__) self._flask.register_error_handler(404, self._error_404_handler) self._flask.register_error_handler(405, self._error_405_handler) self._flask.register_error_handler(500, self._error_500_handler) self._response_wrapper = ResponseWrapperFactory.get_wrapper(self._settings["output"]) # serve static content, please use that possibility only for testing. # in production please use nginx, apache, etc for this. if self._settings["static_enabled"]: self._log.info("Static content serving enabled, serving \"%s\" at mountpoint \"%s\"" % (self._settings["static_path"], self._settings["static_endpoint"])) self._flask.static_folder = self._settings["static_path"] self.serve_static_content()