使用 Flask 和 Flasgger 实现 Python REST API

利用 Flask 这一轻量级且灵活的 Web 框架,我们在 Python 中构建 RESTful API 的过程可以变得十分简便。为了给 API 添加全面的文档和交互功能,Flasgger 是一个强大的工具,它能将 Swagger UI 无缝集成到 Flask 中。这篇文章将引导我们完成使用 Flask 和 Flasgger 实现 REST API 的全过程。

什么是 Flasgger?

Flasgger 是一个 Python 库,旨在简化和促进 Flask Web 应用程序的 Swagger(OpenAPI)文档的创建与管理。Swagger 是一个用于描述 API 的框架,它使用一种通用的语言,使得人类和计算机都能在无需访问源代码的情况下理解 Web 服务的功能。

Flasgger 的主要特性包括:

  • 易于集成:Flasgger 与 Flask 应用程序无缝集成,允许开发者只需极少的配置即可添加 API 文档。
  • 自动文档生成:它可以直接从 Flask 路由和视图函数自动生成 API 文档,利用文档字符串和其他元数据即可完成。
  • Swagger UI:Flasgger 提供了内置的 Swagger UI,这是一个交互式的 Web 界面,允许用户探索和测试 API 端点。
  • 自定义配置:开发者可以通过定义模式、在文档字符串中直接添加参数、响应和示例,或使用 YAML 文件来自定义文档。
  • 验证功能:它支持根据定义的模式对请求进行验证,以确保传入的请求符合预期的格式和约束。

使用 Swagger 进行首个 API 开发

下面我们将通过一个分步指南,了解如何使用 Flask Web 框架在 Python 中进行“代码优先”的 API 开发并集成 Swagger:

设置环境

  • 确保系统中已预装 Python。
  • 在命令提示符中安装 Flask 和 Flask-RESTful 等必需的库,如下所示。
pip install flask
pip install Flask-RESTful
pip install flasgger

创建 Flask 应用

创建一个新的 Python 文件,命名为 app.py。

Python


CODEBLOCK_1e9a9a68

输出:

如图所示运行此文件:

python app.py

然后应用将在本地主机 http://127.0.0.1:5000 上运行。打开该地址,输出将如下图所示。

!s未集成 Swagger 的 Flask API

集成 Swagger

我们对 Swagger 配置进行了扩展,增加了标题并将 UI 版本设置为 3,以获得更现代的外观。

Python


CODEBLOCK_8e18db39

输出

!Capture1

创建另一个 API

我们添加了一个新类 Items,它继承自 Resource。这个类用于处理 /items 端点。

  • **Items**
  • 这个类处理两种 HTTP 方法:INLINECODEc9ffc102 和 INLINECODEb19e9f93。
  • get 方法返回项目列表。
  • post 方法向列表中添加一个新项目。为了简单起见,该项目会在响应中返回;在实际应用中,它通常会添加到数据库或其他数据存储中。

Python


from flask import Flask, request

from flask_restful import Api, Resource

from flasgger import Swagger, swag_from

app = Flask(name)

api = Api(app)

Configuring Swagger

app.config[‘SWAGGER‘] = {

‘title‘: ‘My API‘,

‘uiversion‘: 3

}

swagger = Swagger(app)

class Welcome(Resource):

@swag_from({

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/43638.html
点赞
0.00 平均评分 (0% 分数) - 0