Beispiel #1
0
    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)
Beispiel #2
0
  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()