def __init__(self, rest_api, cors_domain_list=None, web_ui=False, eth_rpc_endpoint=None): self.rest_api = rest_api self.blueprint = create_blueprint() if self.rest_api.version == 1: self.flask_api_context = Api( self.blueprint, prefix=self._api_prefix, ) else: raise ValueError('Invalid api version: {}'.format(self.rest_api.version)) self.flask_app = Flask(__name__) if cors_domain_list: CORS(self.flask_app, origins=cors_domain_list) self._add_default_resources() self._register_type_converters() self.flask_app.register_blueprint(self.blueprint) self.flask_app.config['WEBUI_PATH'] = '../ui/web/dist/' if eth_rpc_endpoint: if not eth_rpc_endpoint.startswith('http'): eth_rpc_endpoint = 'http://' + eth_rpc_endpoint self.flask_app.config['WEB3_ENDPOINT'] = eth_rpc_endpoint if web_ui: for route in ['/ui/<path:file>', '/ui', '/ui/', '/index.html', '/']: self.flask_app.add_url_rule( route, route, view_func=self._serve_webui, methods=['GET'], )
def __init__(self, rest_api, cors_domain_list=None, web_ui=False, eth_rpc_endpoint=None): super().__init__() if rest_api.version != 1: raise ValueError( 'Invalid api version: {}'.format(rest_api.version), ) flask_app = Flask(__name__) if cors_domain_list: CORS(flask_app, origins=cors_domain_list) if eth_rpc_endpoint: if not eth_rpc_endpoint.startswith('http'): eth_rpc_endpoint = 'http://{}'.format(eth_rpc_endpoint) flask_app.config['WEB3_ENDPOINT'] = eth_rpc_endpoint blueprint = create_blueprint() flask_api_context = Api(blueprint, prefix=self._api_prefix) restapi_setup_type_converters( flask_app, { 'hexaddress': HexAddressConverter, }, ) restapi_setup_urls( flask_api_context, rest_api, URLS_V1, ) self.rest_api = rest_api self.flask_app = flask_app self.blueprint = blueprint self.flask_api_context = flask_api_context self.wsgiserver = None self.flask_app.register_blueprint(self.blueprint) self.flask_app.config['WEBUI_PATH'] = RAIDEN_WEBUI_PATH self.flask_app.register_error_handler(HTTPStatus.NOT_FOUND, endpoint_not_found) self.flask_app.register_error_handler(Exception, self.unhandled_exception) self.flask_app.before_request(self._is_raiden_running) # needed so flask_restful propagates the exception to our error handler above # or else, it'll replace it with a E500 response self.flask_app.config['PROPAGATE_EXCEPTIONS'] = True if web_ui: for route in ('/ui/<path:file_name>', '/ui', '/ui/', '/index.html', '/'): self.flask_app.add_url_rule( route, route, view_func=self._serve_webui, methods=('GET', ), ) self._is_raiden_running()
def __init__(self, rest_api, cors_domain_list=None, web_ui=False, eth_rpc_endpoint=None): if rest_api.version != 1: raise ValueError( 'Invalid api version: {}'.format(rest_api.version), ) flask_app = Flask(__name__) if cors_domain_list: CORS(flask_app, origins=cors_domain_list) if eth_rpc_endpoint: if not eth_rpc_endpoint.startswith('http'): eth_rpc_endpoint = 'http://{}'.format(eth_rpc_endpoint) flask_app.config['WEB3_ENDPOINT'] = eth_rpc_endpoint blueprint = create_blueprint() flask_api_context = Api(blueprint, prefix=self._api_prefix) restapi_setup_type_converters( flask_app, { 'hexaddress': HexAddressConverter, 'keccak': KeccakConverter, }, ) restapi_setup_urls( flask_api_context, rest_api, URLS_V1, ) self.rest_api = rest_api self.flask_app = flask_app self.blueprint = blueprint self.flask_api_context = flask_api_context self.wsgiserver = None self.flask_app.register_blueprint(self.blueprint) self.flask_app.config['WEBUI_PATH'] = '../ui/web/dist/' if is_frozen(): # Inside frozen pyinstaller image self.flask_app.config[ 'WEBUI_PATH'] = '{}/raiden/ui/web/dist/'.format(sys.prefix) self.flask_app.errorhandler(HTTPStatus.NOT_FOUND)(endpoint_not_found) if web_ui: for route in ('/ui/<path:file_name>', '/ui', '/ui/', '/index.html', '/'): self.flask_app.add_url_rule( route, route, view_func=self._serve_webui, methods=('GET', ), )
def __init__(self, rest_api, cors_domain_list=None, web_ui=False, eth_rpc_endpoint=None): if rest_api.version != 1: raise ValueError( 'Invalid api version: {}'.format(rest_api.version), ) flask_app = Flask(__name__) if cors_domain_list: CORS(flask_app, origins=cors_domain_list) if eth_rpc_endpoint: if not eth_rpc_endpoint.startswith('http'): eth_rpc_endpoint = 'http://{}'.format(eth_rpc_endpoint) flask_app.config['WEB3_ENDPOINT'] = eth_rpc_endpoint blueprint = create_blueprint() flask_api_context = Api(blueprint, prefix=self._api_prefix) restapi_setup_type_converters( flask_app, { 'hexaddress': HexAddressConverter, 'keccak': KeccakConverter, }, ) restapi_setup_urls( flask_api_context, rest_api, URLS_V1, ) self.rest_api = rest_api self.flask_app = flask_app self.blueprint = blueprint self.flask_api_context = flask_api_context self.wsgiserver = None self.flask_app.register_blueprint(self.blueprint) self.flask_app.config['WEBUI_PATH'] = '../ui/web/dist/' if is_frozen(): # Inside frozen pyinstaller image self.flask_app.config['WEBUI_PATH'] = '{}/raiden/ui/web/dist/'.format(sys.prefix) self.flask_app.errorhandler(HTTPStatus.NOT_FOUND)(endpoint_not_found) if web_ui: for route in ('/ui/<path:file_name>', '/ui', '/ui/', '/index.html', '/'): self.flask_app.add_url_rule( route, route, view_func=self._serve_webui, methods=('GET', ), )
def __init__(self, rest_api): self.rest_api = rest_api self.blueprint = create_blueprint() if self.rest_api.version == 1: self.flask_api_context = Api( self.blueprint, prefix="/api/1", ) else: raise ValueError('Invalid api version: {}'.format(self.rest_api.version)) self.flask_app = Flask(__name__) self._add_default_resources() self._register_type_converters() self.flask_app.register_blueprint(self.blueprint)
def __init__(self, rest_api, cors_domain_list=None, web_ui=False, eth_rpc_endpoint=None): if rest_api.version != 1: raise ValueError( 'Invalid api version: {}'.format(rest_api.version), ) # We cannot accept requests before the node has synchronized with the # blockchain, which is done during the call to RaidenService.start. # Otherwise there is no guarantee that the node is in a valid state and # that the actions are valid, e.g. deposit in a channel that has closed # while the node was offline. if not rest_api.raiden_api.raiden.start_event.is_set(): raise RuntimeError( 'The RaidenService must be started before the API can be used', ) flask_app = Flask(__name__) if cors_domain_list: CORS(flask_app, origins=cors_domain_list) if eth_rpc_endpoint: if not eth_rpc_endpoint.startswith('http'): eth_rpc_endpoint = 'http://{}'.format(eth_rpc_endpoint) flask_app.config['WEB3_ENDPOINT'] = eth_rpc_endpoint blueprint = create_blueprint() flask_api_context = Api(blueprint, prefix=self._api_prefix) restapi_setup_type_converters( flask_app, { 'hexaddress': HexAddressConverter, }, ) restapi_setup_urls( flask_api_context, rest_api, URLS_V1, ) self.rest_api = rest_api self.flask_app = flask_app self.blueprint = blueprint self.flask_api_context = flask_api_context self.wsgiserver = None self.flask_app.register_blueprint(self.blueprint) self.flask_app.config['WEBUI_PATH'] = '../ui/web/dist/' if is_frozen(): # Inside frozen pyinstaller image self.flask_app.config['WEBUI_PATH'] = '{}/raiden/ui/web/dist/'.format(sys.prefix) self.flask_app.errorhandler(HTTPStatus.NOT_FOUND)(endpoint_not_found) self.flask_app.errorhandler(Exception)(self.unhandled_exception) if web_ui: for route in ('/ui/<path:file_name>', '/ui', '/ui/', '/index.html', '/'): self.flask_app.add_url_rule( route, route, view_func=self._serve_webui, methods=('GET', ), )