from aiohttp import web from aiohttp.web import middleware async def handle(request): name = request.match_info.get('name', "Anonymous") return web.json_response(dict(text="Hello, {}".format(name))) @middleware async def auth(request, handler): # TODO - check auth cookie return await handler(request) def start(): app = web.Application(middlewares=[auth]) app.add_routes([ web.get('/', handle), web.get('/{name}', handle) ]) web.run_app(app) if __name__ == '__main__': start()