def build_handlers(loop, stream): """Returns Rest Api route handlers modified with some a mock stream. Args: stream (object): The MockStream set to `self.stream` Returns: RouteHandler: The route handlers to handle test queries """ handlers = RouteHandler(loop, 'tcp://0.0.0.0:40404', TEST_TIMEOUT) handlers._stream = stream return handlers
def start_rest_api(host, port, stream_url, timeout): """Builds the web app, adds route handlers, and finally starts the app. """ loop = asyncio.get_event_loop() app = web.Application(loop=loop, middlewares=[logging_middleware]) # Add routes to the web app handler = RouteHandler(loop, stream_url, timeout) app.router.add_post('/batches', handler.submit_batches) app.router.add_get('/batch_status', handler.list_statuses) app.router.add_post('/batch_status', handler.list_statuses) app.router.add_get('/state', handler.list_state) app.router.add_get('/state/{address}', handler.fetch_state) app.router.add_get('/blocks', handler.list_blocks) app.router.add_get('/blocks/{block_id}', handler.fetch_block) app.router.add_get('/batches', handler.list_batches) app.router.add_get('/batches/{batch_id}', handler.fetch_batch) app.router.add_get('/transactions', handler.list_transactions) app.router.add_get('/transactions/{transaction_id}', handler.fetch_transaction) # Start app web.run_app(app, host=host, port=port)
def start_rest_api(host, port, stream, timeout): """Builds the web app, adds route handlers, and finally starts the app. """ loop = asyncio.get_event_loop() app = web.Application(loop=loop, middlewares=[access_logger]) # Add routes to the web app LOGGER.info('Creating handlers for validator at %s', stream.url) handler = RouteHandler(loop, stream, timeout) app.router.add_route('OPTIONS', '/{route_name}', cors_handler) app.router.add_post('/batches', handler.submit_batches) app.router.add_get('/batch_status', handler.list_statuses) app.router.add_post('/batch_status', handler.list_statuses) app.router.add_get('/state', handler.list_state) app.router.add_get('/state/{address}', handler.fetch_state) app.router.add_get('/blocks', handler.list_blocks) app.router.add_get('/blocks/{block_id}', handler.fetch_block) app.router.add_get('/batches', handler.list_batches) app.router.add_get('/batches/{batch_id}', handler.fetch_batch) app.router.add_get('/transactions', handler.list_transactions) app.router.add_get( '/transactions/{transaction_id}', handler.fetch_transaction) # Start app LOGGER.info('Starting REST API on %s:%s', host, port) web.run_app(app, host=host, port=port, access_log=None)
def start_rest_api(host, port, connection, timeout, registry, client_max_size=None): """Builds the web app, adds route handlers, and finally starts the app. """ loop = asyncio.get_event_loop() connection.open() app = web.Application(loop=loop, client_max_size=client_max_size) app.on_cleanup.append(lambda app: connection.close()) # Add routes to the web app LOGGER.info('Creating handlers for validator at %s', connection.url) handler = RouteHandler(loop, connection, timeout, registry) app.router.add_post('/wallets', handler.post_wallet) app.router.add_post('/fee', handler.get_fee) app.router.add_post('/transactions', handler.post_transaction) app.router.add_post('/transactions/convert', handler.post_transaction_convert) app.router.add_post('/transactions/add_funds', handler.post_add_funds) app.router.add_get('/wallets/{address}', handler.get_wallet) app.router.add_get('/global_wallet', handler.get_global_wallet) app.router.add_get('/global_transactions', handler.get_global_transactions) subscriber_handler = StateDeltaSubscriberHandler(connection) app.router.add_get('/subscriptions', subscriber_handler.subscriptions) app.on_shutdown.append(lambda app: subscriber_handler.on_shutdown()) # Configure default CORS settings. cors = aiohttp_cors.setup(app, defaults={ "*": aiohttp_cors.ResourceOptions( allow_credentials=True, expose_headers="*", allow_headers="*", ) }) # Configure CORS on all routes. for route in list(app.router.routes()): cors.add(route) # Start app LOGGER.info('Starting REST API on %s:%s', host, port) web.run_app(app, host=host, port=port, access_log=LOGGER, access_log_format='%r: %s status, %b size, in %Tf s')
def start_rest_api(host, port, connection, timeout, registry, client_max_size=None): """Builds the web app, adds route handlers, and finally starts the app. """ loop = asyncio.get_event_loop() connection.open() app = web.Application(loop=loop, client_max_size=client_max_size) app.on_cleanup.append(lambda app: connection.close()) # Add routes to the web app LOGGER.info('Creating handlers for validator at %s', connection.url) handler = RouteHandler(loop, connection, timeout, registry) app.router.add_post('/batches', handler.submit_batches) app.router.add_get('/batch_statuses', handler.list_statuses) app.router.add_post('/batch_statuses', handler.list_statuses) app.router.add_get('/state', handler.list_state) app.router.add_get('/state/{address}', handler.fetch_state) app.router.add_get('/blocks', handler.list_blocks) app.router.add_get('/blocks/{block_id}', handler.fetch_block) app.router.add_get('/batches', handler.list_batches) app.router.add_get('/batches/{batch_id}', handler.fetch_batch) app.router.add_get('/transactions', handler.list_transactions) app.router.add_get('/transactions/{transaction_id}', handler.fetch_transaction) app.router.add_get('/receipts', handler.list_receipts) app.router.add_post('/receipts', handler.list_receipts) app.router.add_get('/peers', handler.fetch_peers) app.router.add_get('/nodes', handler.fetch_nodes) # just for testing app.router.add_get('/status', handler.fetch_status) subscriber_handler = StateDeltaSubscriberHandler(connection) app.router.add_get('/subscriptions', subscriber_handler.subscriptions) app.on_shutdown.append(lambda app: subscriber_handler.on_shutdown()) # Start app LOGGER.info('Starting REST API on %s:%s', host, port) web.run_app(app, host=host, port=port, access_log=LOGGER, access_log_format='%r: %s status, %b size, in %Tf s')
def build_handlers(loop, connection): """Returns Rest Api route handlers modified with some a mock connection. Args: connection (object): The MockConnection set to `self.connection` Returns: RouteHandler: The route handlers to handle test queries """ handlers = RouteHandler(loop, connection, TEST_TIMEOUT) return handlers
def start_rest_api(host, port, connection, timeout): """Builds the web app, adds route handlers, and finally starts the app. """ loop = asyncio.get_event_loop() connection.open() app = web.Application(loop=loop) app.on_cleanup.append(lambda app: connection.close()) # Add routes to the web app LOGGER.info('Creating handlers for validator at %s', connection.url) handler = RouteHandler(loop, connection, timeout) app.router.add_route('OPTIONS', '/{route_name}', cors_handler) app.router.add_post('/batches', handler.submit_batches) app.router.add_get('/batch_status', handler.list_statuses) app.router.add_post('/batch_status', handler.list_statuses) app.router.add_get('/state', handler.list_state) app.router.add_get('/state/{address}', handler.fetch_state) app.router.add_get('/blocks', handler.list_blocks) app.router.add_get('/blocks/{block_id}', handler.fetch_block) app.router.add_get('/batches', handler.list_batches) app.router.add_get('/batches/{batch_id}', handler.fetch_batch) app.router.add_get('/transactions', handler.list_transactions) app.router.add_get( '/transactions/{transaction_id}', handler.fetch_transaction) # Start app LOGGER.info('Starting REST API on %s:%s', host, port) web.run_app(app, host=host, port=port, access_log=LOGGER, access_log_format='%r: %s status, %b size, in %Tf s')
async def cors_handler(request): headers = {} RouteHandler.add_cors_headers(request, headers) return web.Response(headers=headers)