swagger官网称其为世界最流行的api工具。用过的都说好。我已经深有体会。

附上官网编辑页面。只需要拷贝相应的文件就可以实现效果

swagger在线编辑器

下面主要讲解一下在python的flask框架下,如何使用这款屌炸天的应用。

1、安装flasgger 项目地址https://github.com/rochacbruno/flasgger

pip install flasgger

2、写一个简单的web例子。


利用swagger模块开发flask的api接口帮助文档_swagger

以下是简写代码

#coding:utf8
import sys
reload(sys)
sys.setdefaultencoding('utf8')
from flask import Flask,Blueprint,render_template,request,redirect,jsonify
from flasgger import Swagger,swag_from

app = Flask(__name__)

swagger = Swagger(app)

#swagger展现api接口方法集合,访问http://127.0.0.1:9001/apidocs/即可
@app.route('/api/publish/k8sbuildjob/',methods=['POST'])
@swag_from('apiDescYmal/color.yml')
def build():
    return jsonify({})


if __name__ == '__main__':
    app.run(host='0.0.0.0',port=9001,debug=True)

3、描述文件。示例color.yml

发布镜像编译任务接口
指定的color.yml文件
---
schemes:
  - http
parameters:
  - name: appid
    in: body
    description: 指定需要编译镜像的appid
    type: integer
    enum: ['111', '222',]
    required: true
    default: all
  - name: dbenv
    in: body
    description: 指定数据库db环境
    type: string
    enum: ['formal', 'test']
    required: true
    default: all
  - name: dbname
    in: body
    description: 指定数据库db
    type: string
    enum: ['kubernetes', 'cdsmdb']
    required: true
    default: all
  - name: releaseenv
    in: body
    description: 发布环境
    type: string
    enum: ['test', 'pro']
    required: true
    default: all
definitions:
  Palette:
    type: object
    properties:
      palette_name:
        type: array
        items:
          $ref: '#/definitions/k8sbuildjob'
  Color:
    type: string
responses:
  200:
    description: 返回的是一个元组,第一位是状态码0成功,1失败,第二个是成功或失败的信息
    schema:
      $ref: '#/definitions/k8sbuildjob'
    examples:
      data: (0, "send rabbitmq k8s job success")

4、运行程序

python k8sdashboard.py

访问api帮助接口:

默认接口是:

http://172.31.29.123:9001/apidocs/#/default

利用swagger模块开发flask的api接口帮助文档_swagger_02

更多信息,访问官网自研究