发布于: 2023-7-6最后更新: 2023-7-25字数 00 分钟

Swagger是一个开源的API文档工具,它允许开发人员描述、编写和测试API。它具有易用性强、描述格式简单、支持多语言等特点,被广泛应用于互联网公司和开发者社区。
使用Swagger,开发人员可以定义API的路径、请求方法、参数、返回值等细节信息,并通过Swagger UI进行API测试和文档展示。开发人员可以编写各种类型的文档描述,包括RAML和OpenAPI规范。

Ref

flasgger

特性:
  • Flasgger是一个Flask扩展,可从您的API中所有已注册的Flask视图中提取OpenAPI-Specification(以下简称"spec")。
  • Flasgger还集成 SwaggerUI,因此您可以访问http://localhost:5000/apidocs并可视化并与您的API资源进行交互。
  • Flasgger还使用与可以验证以POST,PUT,PATCH形式接收的数据是否与YAMLPython字典Marshmallow Schema所定义的spec一致。
  • Flasgger可以使用简单的函数视图或方法视图(使用docstring作为规范),或使用@swag_from装饰器从YAMLdict获取spec,还提供可以使用SwaggerView调用Marshmallow Schemas作为spec。
  • Flasgger与Flask-RESTful兼容,因此您可以同时使用Resourcesswag spec,看看restful示例
  • Flasgger还支持将Marshmallow APISpec作为规范的spec模板,如果您使用的是Marshmallow的APISPec,请查看apispec示例
以下是官网的示例。
基础使用示例
相应的解释:
  • parameters:该接口的参数
  • definitions:定义的模式(schema),指定了一些模式(理解成一些数据结构)。在后面通过schema_id引用。
  • responses :该接口的返回。
validation
以及相应的yml.
就会根据这里参数的要求,检查age是整数、username是字符串。如果输入参数不匹配,就会出现400错误。
效果:
notion image

flask-restx

根据flask-restplus发展而来,前者已经不维护无法使用。
效果:
notion image
类似于Marshmallow APISpec 的风格。定义一些Schema叫做Model,和OpenAPI描述的definition类似。然后定义资源的概念,围绕资源添加CURD的接口,然后自动生成相应的Restful API文档。
 

Flask JWT Extended
Flask JWT Extended

Flask JWT Extended是一个Flask扩展,用于实现JSON Web Token(JWT)的认证和授权。它提供了易于使用的工具,支持多种身份验证方案,包括HTTP基本身份验证、OAuth和OpenID Connect等。您需要设置一些配置选项,如密钥、令牌过期时间、刷新令牌过期时间和请求头名称。然后,您可以使用装饰器来保护您的视图函数,并使用JWT来进行身份验证和授权。