tornado集成swagger

关于

swagger相信大家都不陌生了,但是除了一些主流的框架,小众一点的群体想和现有项目交互集成还是比较困难,网上关于Tornado框架集成Swagger的教程很少,最近整理了一下今天给大家介绍写法和用例等。

安装插件

pip install tornado_swagger

启动类引入相关配置

from tornado_swagger.setup import setup_swagger
        在原有启动应用程序的方法上加入以下配置
        setup_swagger(routes ,
                      swagger_url='/swagger',
                      api_base_url="/spec",
                      description="用于模板展示的API接口事例和说明",
                      title="模板API列表",schemes=["http"])
        tornado.web.Application.__init__(self, handlers, **settings)

基本参数解释:
routes :路由注册。
swagger_url:访问swagger的路径。
title: 可选参数,指定 SwaggerUI 的标题。
description: 可选参数,指定 Swagger UI 的描述。
schemes: 可选参数,指定支持的协议。
还有其他的一些可选配置,在这里就不都说明啦~

使用并生成相关内容

如果要描述的接口为post类型,则在handler处理类下新增一个post方法,在下面填写相关参数注释。如下文:

    def post(self):
        """
        ---
        tags:
        - 店铺数据处理
        summary: 获取列表数据
        description: 查询所在店铺的信息并展示
        produces:
        - application/json
        parameters:
        -   name: body
            in: body
            schema:
              type: object
              properties:
               page_num:
                 type: number
                 required: true
                 default: 1
               page_size:
                 type: number
                 default: 10
                 required: true
               product_id:
                 type:  number
               prdouct_name:
                 type:  string
        responses:
            200:
              description: success
            500:
              description: faild
        """

写完以后将对应的route注册到swagger:

routes = [
        tornado.web.url(r'/store/get_list', PostsHandler),
        tornado.web.url(r'/store/(\w+)', PostsDetailsHandler),
    ]

然后打开浏览器访问程序所在端口加上/swagger路径
在这里插入图片描述
在这里插入图片描述
返回值是实体model的时候在代码里引入

from tornado_swagger.model import register_swagger_model

@register_swagger_model
class StoreModel:
    """
    ---
    type: object
    description: Post model representation
    properties:
        store_id:
            type: string
        title:
            type: string
        text:
            type: string
        is_visible:
            type: boolean
            default: true
    """
#然后修改对应的注释,在返回的状态码中添加
           responses:
            200:
              description: success
              schema:
                $ref: '#/definitions/StoreModel'

这样返回值也会显示在swagger的ui页面上了,也可以配置参数描述等。
在这里插入图片描述

同理,get方法和put等请求方式也是一样的,不过根据传参的类型和返回值的结构再做相应的修改就好了。

现在是不是觉得非常简单呢,只是有些参数可能大家还比较懵,在这里一起解释一下:

  • summary:接口的简要描述,通常只包含一句话。

  • description:接口的详细描述,通常包含接口的实现逻辑、输入输出参数等信息。

  • tags:接口所属的标签,用于对接口进行分类和分组。

  • name:输入参数的名称。

  • in:参数的位置,可以是queryheaderpathformDatabody,其中最常见的是querybody

  • query:查询字符串中的参数,如/users?name=John&age=20中的nameage

  • header:HTTP请求头中的参数,如AuthorizationContent-Type等。

  • path:路径参数,如/users/{id}中的id

  • formData:表单数据,通常用于POST请求中的表单提交。

  • body:请求体中的数据,通常用于发送JSON、XML等非表单数据。

  • type:参数的数据类型,可以是integernumberstringbooleanarrayobject

  • description:参数的描述信息。

  • required:参数是否为必选项,可选值为truefalse

  • default:参数的默认值。

  • minimum:参数的最小值。

  • maximum:参数的最大值。

  • responses:接口可能返回的HTTP响应。

  • 200400:HTTP响应的状态码,成功、失败等几种常见状态。

  • description:HTTP响应的描述信息。

  • schema:HTTP响应所包含的数据结构。

  • $ref:引用某个定义,例如#definitions/User表示引用名为User的数据结构定义。

    如果觉得内容对你有帮助,记得一键三连喔亲~~~
    在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

super超的代码日志

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值