title: Python 快速搭建 RESTful API date: 2021-09-23 18:30:14 categories:
- IT技术
- 编程语言
- python tags:
- IT技术
- 编程语言
- python
摘要:RESTful 是什么? RESTful 是一种网络应用程序的开发方式或设计风格,基于 HTTP 网络协议,可以使用 XML 或 JSON 格式定义,目前使用最多的是 JSON 格式,因为它相比 XML 体积更小,传输速度更快,承载内容更多。 RESTful 应用场景 RESTful 开发方式大多应用在前端和后端开发分离的环境中,前端和后端分离带来的最大好处就是项目耦合度得到降低,前端通过
Python 快速搭建 RESTful API
RESTful 是什么? RESTful 是一种网络应用程序的开发方式或设计风格,基于 HTTP 网络协议,可以使用 XML 或 JSON 格式定义,目前使用最多的是 JSON 格式,因为它相比 XML 体积更小,传输速度更快,承载内容更多。 RESTful 应用场景 RESTful 开发方式大多应用在前端和后端开发分离的环境中,前端和后端分离带来的最大好处就是项目耦合度得到降低,前端通过 RESTful API 接口服务完成对数据的增删改查,也就是常说的对数据库的 CRUD 在 Python 中如何实现快速高效地开发 RESTful API 呢? 在 Python 中有很多 RESTful Web 框架,如 Django REST framework,Flask-RESTful 等等。 Django REST framework 是一个功能强大且灵活的 REST Web API 框架,包含 OAuth1a、OAuth2身份验证策略,支持 ORM 和非 ORM 数据源的序列化,使用基于函数的常规视图实现自定义你所需要的功能,有广泛的文档资料和社区支持。 Flask-RESTful 是一个非常轻量级,能够快速上手的 RESTful Web API 框架。可以快速搭建并运行完成一个 RESTful API 服务。相对于 Django REST framework 是比较轻量级的 RESTful API 框架。 那还有比这俩框架更好用,更容易上手的 RESTful API 框架吗? 答案是 FastAPI ,从 FastAPI 的名字就可以看出,FastAPI 最大的特点那就是快,上手快,运行速度更快,到底有多快,接下来我们一起来探究下。 FastAPI 是一个高性能的异步Web框架,具有并发性能强、容错性能强,快速上手,自动生成交互式文档,堪称目前最快最高效的 Web 框架。 首先安装 FastAPI 和相关的运行环境 pip install fastapi,运行命令安装 FastAPI,如下图,表示安装成功。

pip install uvicorn,安装 uvicorn Web 服务框架。Uvicorn 一个基于 asyncio 开发的一个轻量级高效的 Web 服务器框架,Uvicorn 设计的初衷是使用 uvloop 和 httptools 实现一个极速的 asyncio 服务器;实现一个基于 ASGI(异步服务器网关接口)的最小的应用程序接口。

在 PyCharm 中新建一个 Python 项目 新建一个 main.py 文件,编写 RESTful API 服务。在 .NET Core 或 Java 中,创建一个接口,通常命名为 xxxController,比如 UserController。当然,这只是一种命名方式,如果你喜欢这样命名,这也可以这样命名。

在 main.py 中,简单实现四个接口,看看运行完成后是什么样。 在 PyCharm 控制台 cd 到 main.py 目录中,输入命令 uvicorn main:app –reload 运行 FastAPI,显示如下信息,表示运行完成。在浏览器中打开 127.0.0.1:8080 查看运行完成后的 Fast API。

运行结果如下。当我第一次运行完成后,我有点怀疑这是不是真的,是不是我在浏览器中输入的链接地址错误了。因为我对 Swagger 不管在 .NET Core 或 Java 中都没有这么简单,在这里,我基本没有对 Swagger 文档做任何配置,就可以显示一个 API 文档了。这样一来,又帮助开发者节约了一部分时间,在开发中,最浪费时间的工作就是在这种开发环境配置。

自定义 OpenAPI 在上图中,可以看到,API 标题,API 描述、版本等信息都修改成了我这边测试的信息,怎么修改的呢? 直接贴代码

当然,还有很多相关的自定义,这里就不一一讲解了。 下面给大家介绍一个比较好用的功能 本地断网情况下继续使用 OpenApi 首先,安装 aiofiles 库,执行命令 pip install aiofiles

然后在本地项目中新建一个存放资源文件的文件夹,放入这三个资源文件,资源文件可以通过 FastAPI 官方网站上获取,也可以私信我获取。

导入相关的包,和配置 static 目录,

docs 页面配置
