使用Python和aiohttp创建RESTfulAPI
文章目录
原文出自: Creating a RESTful API with Python and aiohttp
在本教程中,我们将使用aio-libs / aiohttp构建一个非常简单的基于RESTful的API,它是一个异步的http客户端/服务器框架。
aiohttp入门
在我们开始讨论如何使用aiohttp创建一个简单的RESTful API之前,确切了解框架是什么以及它可以为我们做些什么是很重要的。首先,它具有对HTTP协议和websockets的出色支持,使其成为使用流行的websocket库(如Socket.io)的理想选择。如果您有兴趣了解如何实现基于客户端/服务器socketio的简单解决方案,请查看教程:Python Socket.io和aiohttp教程 。
aiohttp框架的关键部分是它以异步方式工作,它可以同时处理每秒数百个请求而不会有太多麻烦。与诸如flask之类的框架相比,它具有令人难以置信的高性能。
安装aiohttp
要安装aiohttp,您可以运行以下pip命令:
|
|
编写一个简单的API
为了让我们开始编写一个简单的API,我们将编写一个处理函数; async def handle(request): 无论何时调用它都将返回基于json的响应。然后我们将通过调用 app = web.Application() 来创建一个app对象,然后我们将设置我们的应用程序的路由器并添加一个GET请求端点,只要命中 “/” 就调用句柄。最后,我们调用 web.run_app(app) 以启动我们新定义的aiohttp API。
|
|
测试我们的API
然后我们可以通过调用python app.py运行我们的新REST API,它应该在http://0.0.0.0 或者 http:// localhost上启动我们的应用程序。默认端口8080
|
|
当然访问 http://localhost:8080 时 您应该会在浏览器中看到我们的{“status”:“success”}。
POST请求和查询参数
既然我们已经成功定义了一个非常基本的单端点API,我们现在可以开始构建一些不同的路由。让我们创建一个简单的POST请求,它通过查询参数获取名称。我们希望此端点的最终URL如下所示: http://localhost:8080/user?name=elliot ,
现在让我们定义处理函数 new_user(request)
|
|
一旦我们成功定义了这个新的处理函数,我们就必须在我们的路由中注册它,如下所示:
|
|
尝试立即运行您的应用程序并向: http://localhost:8080/user?name=test 发送post请求。您应该可以在控制台看到一下输出:
|
|
您应该还获得相同的成功json和200状态。
文章作者 thsheep
上次更新 2018-07-09