2016-11-15 67 views
4

我想为我的应用程序添加一个REST API。我已经有一些(非REST)使用Python asyncio的UNIX套接字侦听器,我想保留它。我发现的用于实现REST API的大多数框架似乎都需要启动自己的事件循环(与asyncio的事件循环冲突)。在Python中使用现有的asyncio事件循环实现REST API

组合REST/UNIX套接字侦听器而不必从头开始自己实现的最佳方法/库是什么?

在此先感谢!

回答

4

好的,为了回答我的问题,上面的工作很好地使用aiohttp。有关Tuture的参考资料,请参考aiohttp文档中的最小示例:

import asyncio 
from aiohttp import web 
import code 

async def handle(request): 
    name = request.match_info.get('name', "Anonymous") 
    text = "Hello, " + name 
    return web.Response(text=text) 

app = web.Application() 
app.router.add_get('/', handle) 
app.router.add_get('/{name}', handle) 

loop = asyncio.get_event_loop() 
handler = app.make_handler() 
f = loop.create_server(handler, '0.0.0.0', 8080) 
srv = loop.run_until_complete(f) 

loop.run_forever() 
code.interact(local=locals())