返回顶部
首页 > 资讯 > 前端开发 > VUE >怎么用flask生成swagger文档
  • 539
分享到

怎么用flask生成swagger文档

2024-04-02 19:04:59 539人浏览 薄情痞子
摘要

这篇文章主要讲解了“怎么用flask生成swagger文档”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用flask生成swagger文档”吧!flas

这篇文章主要讲解了“怎么用flask生成swagger文档”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用flask生成swagger文档”吧!

flask 自动生成swagger 的api接口文档

  1. 安装flask-restplus 第三方包,使用pip install flask-restplus 安装即可。

  2. 在一个普通的正常的flask 应用项目结构下,应该是在extensions.py 下进行代码书写,因为这是进行程序扩展的代码编写处。导包,导入flask_restplus 下的Api,Resource,fields。获取一个app 实例。并进行namespace 的书写。代码如下:

    api = Api(doc='/swagger')
    api.init_app(app, version='1.0', title='Data Visualization And Analysis API',
                 description='A Charting and Data analysis API')
    bar_line = api.namespace('drawing bar and line', path='/', description="draw bar and line chart")
    pie = api.namespace('drawing pie', path='/', description="draw pie chart")
    radar = api.namespace('drawing radar', path='/', description="draw radar chart")
    scatter = api.namespace('drawing scatter', path='/', description="draw scatter chart")
    data_analysis = api.namespace('data analysis', path='/', description="data analysis")

获取一个实例化Api对象,app是一个实例化的flask对象,通过在实例化Api对象时通过doc 参数可以指定最终的接口文档通过什么路由可以访问到。api.namespace :是命名空间,很多接口都有get,post,命名空间把他们分隔开,可理解为蓝图。 path:代表他们的路由地址,这里让他们都使用route的地址,不写的话会把命名空间的name加到路由地址的最前面 description:是对该组下所有接口的总的一个注释。

  1. 通过api.model 来描述请求的request 和 响应的response,通过api.namespace.parser 来描述请求的headers 参数。

代码示例如下:

    # 使用parser 来描述接口的headers 和 query
    bar_line_parameter = bar_line.parser()
    bar_line_parameter.add_argument('Authorization', location='headers', default="a")
    bar_line_parameter.add_argument('User-Agent', location='headers', default="ua")
    # 使用model 来描述接口的请求体
    bar_line_model = api.model('Bar_Line_Request', {
        "type": fields.String(default="bar"),
        "title": DictItem(required=True, default={}, description="chart title option"),
        "item": DictItem(required=True, default={}, description="chart series item option"),
        "xaxis": DictItem(required=True, default={}, description="chart xaxis option"),
        "yaxis": DictItem(required=True, default={}, description="chart yaxis option"),
        "grid": DictItem(required=True, default={}, description="chart grid option"),
        "legend": DictItem(required=True, default={}, description="chart legend option"),
        "tooltip": DictItem(required=True, default={}, description="chart tooltip option"),
        "background": DictItem(required=True, default={}, description="chart tooltip option"),
    }, description="request api needed body parameter")
    # 使用model 来描述接口的响应
    bar_line_response = api.model('bar_line_Response', {
        'data': DictItem(required=True, default=bar_line_response_data_default, description="chart option"),
        'status': fields.Integer(required=True, default=200, description="response status"),
        'msg': fields.String(required=True, default="successful", description="api response message")
    })

如上,其中bar_line 是api.namespace() 的返回对象,使用parser 的add_argument() 方法来添加headers ,或query 中请求所需参数,同时可以定义默认值。 使用model 来描述请求的请求体,响应也是。model 需要指定一个唯一的key 值,和一个 {} 字典键值对,在该字典键值对中key值是所需传输的name,value 是通过flask-restplus 下的fields 来指定数据类型以及默认值描述 的值。 如果fields中提供的数据类型满足不了使用,可以通过自定义类继承fields.Row ,并且实现fORMat 方法,来使用自定义的数据类型。代码中的DictItem 就是自定义数据类型。

  1. 将以上定义的model,parser 应用到接口上。通过装饰器的方式,代码如下。

    # 使用api.namespace.route 来指定接口的访问路由,使用description来描述接口
    @bar_line.route('/api/chart/draw/bar_and_line',
                    doc={"description": "返回图表的echarts 配置项信息,当请求参数配置为空时返回默认配置的图表即示例样例,否则根据请求的配置参数返回对应的完整的图表配置信息"})
    # 这里的api.namespace.expect 需要与上面的api.namespace.expect 联用
    @bar_line.expect(bar_line_parameter)
    # 需要继承于Resource类
    class BarLineOption(Resource):
        # doc 用于描述接口,body=X 指定请求的body描述
        @bar_line.doc('Return to bar and line chart configuration item')
        @bar_line.doc(body=bar_line_model)
        # marshal_with 指定响应的描述
        @bar_line.marshal_with(bar_line_response)
        # 接口支持什么方法,就定义一个什么方法。
        def post(self):
            return {'data': {},
                    "status": 200, "msg": "successful"}

感谢各位的阅读,以上就是“怎么用flask生成swagger文档”的内容了,经过本文的学习后,相信大家对怎么用flask生成swagger文档这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: 怎么用flask生成swagger文档

本文链接: https://lsjlt.com/news/99009.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么用flask生成swagger文档
    这篇文章主要讲解了“怎么用flask生成swagger文档”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用flask生成swagger文档”吧!flas...
    99+
    2024-04-02
  • SpringBoot怎么整合Swagger Api自动生成文档
    本篇内容主要讲解“SpringBoot怎么整合Swagger Api自动生成文档”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringBoot怎么整合Swagger Api自动生成文档”吧!...
    99+
    2023-06-20
  • PHP使用Swagger生成好看的API文档
    目录一、安装swagger-php二、设置一个输出api文档数据的接口三、使用四、显示swagger uiPHP使用Swagger生成好看的API文档不是不可能,而是非常简单。 首先...
    99+
    2023-02-15
    PHP Swagger生成API文档 PHP Swagger
  • SpringBoot中怎么集成Swagger文档
    在SpringBoot中集成Swagger文档,可以通过以下步骤: 添加Swagger依赖: 在项目的pom.xml文件中添加Sw...
    99+
    2024-03-07
    SpringBoot
  • Laravel swagger接口文档生成和管理
    接口开发随着时间推移接口会越来越多,随着多部门之间的协作越来越频繁, 维护成本越来越高, 文档的可维护性越来越差, 需要一个工具来管理这些接口的文档, 并能够充当mock server给调用方使用 这里推荐swagger生成和管理接口文档...
    99+
    2024-04-02
  • 教你利用springboot集成swagger并生成接口文档
    效果图 实现步骤 1.maven中引入jar包,不同版本的swagger可能页面效果不一样。 <dependency> <groupI...
    99+
    2024-04-02
  • PHP如何使用Swagger生成好看的API文档
    本文小编为大家详细介绍“PHP如何使用Swagger生成好看的API文档”,内容详细,步骤清晰,细节处理妥当,希望这篇“PHP如何使用Swagger生成好看的API文档”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧...
    99+
    2023-07-05
  • golang组件swagger生成接口文档的方法
    这篇文章主要介绍“golang组件swagger生成接口文档的方法”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“golang组件swagger生成接口文档的方法”文章能帮助大家解决问题。swagge...
    99+
    2023-06-30
  • Java集成swagger文档组件
    一:简介   Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务...
    99+
    2024-04-02
  • golang组件swagger生成接口文档实践示例
    目录swagger介绍gin-swagger实战第一步:添加注释第二步:生成接口文档数据第三步:引入gin-swagger渲染文档数据swagger介绍 Swagger本质上是一种用...
    99+
    2024-04-02
  • SpringBoot使用swagger生成api接口文档的方法详解
    目录前言具体例子maven配置项目application.yml配置springApplication添加swagger注解在控制层添加swagger注解前言 在之前的文章中,使用m...
    99+
    2022-11-13
    SpringBoot swagger生成api接口文档 SpringBoot 生成api接口文档 SpringBoot swagger
  • Golang怎么生成Excel文档
    这篇文章主要介绍Golang怎么生成Excel文档,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!关于 Excelize 库Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 E...
    99+
    2023-06-15
  • Sphinx怎么生成python文档
    本篇内容主要讲解“Sphinx怎么生成python文档”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Sphinx怎么生成python文档”吧!前言Sphinx是一款支持多种编程语言的文档生成工具...
    99+
    2023-06-29
  • php怎么生成word文档
    可以使用PHP库PHPWord来生成和操作Word文档。以下是一个简单的示例: 首先,你需要安装PHPWord库。可以通过Comp...
    99+
    2024-03-15
    php
  • SpringBoot如何优雅的整合Swagger Api自动生成文档
    目录前言 整合swagger api 自定义配置信息 简单使用 Swagger常用注解Api标记 ApiOperation标记 ApiParam标记 ApiModel标记 ApiMo...
    99+
    2024-04-02
  • 揭开Swagger的神秘面纱:轻松生成RESTful API文档
    Swagger是一个开源工具,它使用YAML或JSON格式来描述RESTful API,并自动生成交互式的API文档。Swagger文档可以帮助开发人员快速了解API的资源、操作和参数,并提供代码示例和测试工具,以便开发人员能够轻松地与...
    99+
    2024-02-25
    Swagger RESTful API 文档生成 开发人员
  • Java如何集成swagger文档组件
    这篇文章主要介绍了Java如何集成swagger文档组件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一:简介  Swagger 是一个规范和完整的框架,用于生成、描述、调用...
    99+
    2023-06-20
  • 实用!一键生成数据库文档,堪称数据库界的Swagger
    本文收录在个人博客:www.chengxy-nds.top,技术资料共享,同进步 最近部门订单业务调整,收拢其他业务线的下单入口,做个统一大订单平台。需要梳理各业务线的数据表,但每个业务线库都有近百张和订单相关的表,挨个表一个一个字段的弄...
    99+
    2021-09-21
    实用!一键生成数据库文档,堪称数据库界的Swagger 数据库入门 数据库基础教程 数据库 mysql
  • 怎么用java快速生成接口文档
    本篇内容主要讲解“怎么用java快速生成接口文档”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用java快速生成接口文档”吧!目录前言方案一,使用japidocs基本用法方案2,swagge...
    99+
    2023-06-20
  • 使用IDEA怎么快速生成注释文档
    本篇文章给大家分享的是有关使用IDEA怎么快速生成注释文档,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。IDEA提供了快捷方式来生成指定的代码。首先我们要编写好代码的模板。打开...
    99+
    2023-06-15
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作