为了在 Python 中快速构建 API,我主要依赖于 Flask 。最近我遇到了一个名为 “API Star” 的基于 Python 3 的新 API 框架。由于几个原因,我对它很感兴趣。首先,该框架包含 Python 新特点,如类型提示和 asyncio。而且它再进一步为开发人员提供了很棒的开发体验。我们很快就会讲到这些功能,但在我们开始之前,我首先要感谢 Tom Christie,感谢他为 Django REST Framework 和 API Star 所做的所有工作。
现在说回 API Star —— 我感觉这个框架很有成效。我可以选择基于 asyncio 编写异步代码,或者可以选择传统后端方式就像 WSGI 那样。它配备了一个命令行工具 —— apistar 来帮助我们更快地完成工作。它支持 Django ORM 和 SQLAlchemy,这是可选的。它有一个出色的类型系统,使我们能够定义输入和输出的约束,API Star 可以自动生成 API 的模式(包括文档),提供验证和序列化功能等等。虽然 API Star 专注于构建 API,但你也可以非常轻松地在其上构建 Web 应用程序。在我们自己构建一些东西之前,所有这些可能都没有意义的。
开始
我们将从安装 API Star 开始。为此实验创建一个虚拟环境是一个好主意。如果你不知道如何创建一个虚拟环境,不要担心,继续往下看。
pip install apistar
(上面的命令是在 Python3 虚拟环境下使用的)
如果你没有使用虚拟环境或者你的 Python 3 的 pip 名为 pip3,那么使用 pip3 install apistar
代替。
一旦我们安装了这个包,我们就应该可以使用 apistar 命令行工具了。我们可以用它创建一个新项目,让我们在当前目录中创建一个新项目。
apistar new .
现在我们应该创建两个文件:app.py,它包含主应用程序,然后是 test.py,它用于测试。让我们来看看 app.py 文件:
from apistar import Include, Routefrom apistar.frameworks.wsgi import WSGIApp as Appfrom apistar.handlers import docs_urls, static_urlsdef welcome(name=None):if name is None:return {'message': 'Welcome to API Star!'}return {'message': 'Welcome to API Star, %s!' % name}routes = [Route('/', 'GET', welcome),Include('/docs', docs_urls),Include('/static', static_urls)]app = App(routes=routes)if __name__ == '__main__':app.main()
在我们深入研究代码之前,让我们运行应用程序并查看它是否正常工作。我们在浏览器中输入 http://127.0.0.1:8080/,我们将得到以下响应:
{"message": "Welcome to API Star!"}
如果我们输入:http://127.0.0.1:8080/?name=masnun
{"message": "Welcome to API Star, masnun!"}
同样的,输入 http://127.0.0.1:8080/docs/,我们将看到自动生成的 API 文档。
新闻热点
疑难解答