使用swagger editor编辑api接口

193 阅读2分钟

创建环境

使用docker创建环境简单快速,详情参考

docker run -d -p 8100:8080 swaggerapi/swagger-editor

然后打开浏览器输入0.0.0.0:8100进入swagger editor开始编辑

编辑

按照restful规范编辑接口
参考文档

swagger: '2.0'
info:
  title: ''
  description: ''
  version: 1.0.0
  termsOfService: ''
  contact:
    email: test@email.com
  license:
    name: Apache 2.0
    url: 'http://www.apache.org/licenses/LICENSE-2.0.html'
host: '0.0.0.0:8000'  #接口的root路径
basePath: /api/v1
tags:
  - name: 文件夹相关操作 #接口分组
    description: 文件夹的相关操作  #分组介绍
schemes:
  - https
  - http
  - ws
  - wss
paths:
  /folders:
      get:
        tags:  #这个是给接口分组,按照上面写的tags
          - 文件夹相关操作
        summary: 获取根目录的同级文件夹目录    #接口功能简介
        description: ''  #接口功能详细介绍
            
        responses:
          200:
            description: OK
            schema:  #结构体信息返回
              $ref: '#/definitions/Folder'  #引用
  /folders/{folderId}:
    get:
      tags: 
        - 文件夹相关操作
      summary: 获取指定目录下的同级目录 
      parameters:
        - in: path  #路由中带{}的要用path,如果需要带参数这里要把path改为query其他的照旧就行
          name: folderId  #名字要和{}中的一致
          required: true
          type: integer  #直接用type这是直接在表示{}中的类型
          format: int64
      responses:  # 返回参数
        200:
          description: OK
          schema:
              $ref: '#/definitions/Folder'
    put:
      tags: 
          - 文件夹相关操作
      summary: 修改文件夹信息
      description: ''
      parameters:  #因为{}中的参数和结构体中的参数都要使用所以要定义两个
          - in: path
            name: folderId
            required: true
            type: integer
            format: int64
          - in: body # 使用json传参使用body,下面就要跟schema,如果要添加参数则为注释内容
            name: body
            required: true
            schema:
              $ref: '#/definitions/Folder'
            schema: 
            	properties:
            		xxx:
            			type: 
      responses:
        200:
          description: OK
          
    post:
      tags: 
      - 文件夹相关操作
      summary: 向该文件夹下创建文件夹
      description: ''
      consumes: # 指定post的请求类型是formdata类型
        - multipart/form-data
      produces:
        - application/json
      parameters:
          - in: path
            name: folderId
            required: true
            type: integer
            format: int64
          - in: formData  # formDatapost的请求类型
            name: folderId
            required: true
            schema: 
              $ref: '#/definitions/Folder'
      responses:
        200:
          description: OK
          schema:
            $ref: '#/definitions/Folder'
    delete:
      tags: 
        - 文件夹相关操作
        
      summary: 删除文件夹
      
      description: ''
      parameters:
        - in: path
          name: folderId
          required: true
          type: string
          format: string
          description: 文件夹的id','号隔开
      responses:
        200:
          description: OK
    
    
securityDefinitions:
  petstore_auth:
    type: oauth2
    authorizationUrl: 'http://petstore.swagger.io/oauth/dialog'
    flow: implicit
    scopes:
      'write:pets': modify pets in your account
      'read:pets': read your pets
  api_key:
    type: apiKey
    name: api_key
    in: header
    
definitions:    #公共引用
  Folder:
    type: "object"
    readOnly: true
    required: 
      - folder
    properties:
      folderId:
        description: 输入为父文件夹的id,输出为创建成功的文件夹id
        type: integer
      name:
        description: 文件夹名字
        type: string
      createrTime:
        description: 文件夹上次打开时间
        type: string
      desc:
        description: 文件夹备注
        type: string
      type:
        description: 类型
        type: string
 

效果图
效果图
编辑完成可以导出json或yaml类型,或者直接导出服务
在这里插入图片描述
也可以导出json格式的文件,然后运行docker run -d -p 9999:8080 -e SWAGGER_JSON=/foo/swagger.json -v /home/w/pyproject/fs-business:/foo swaggerapi/swagger-ui-v挂载的是你刚才导出的就是json文件,这样别人就可以通过访问文档(你的)IP:9999
在这里插入图片描述

开发者涨薪指南

48位大咖的思考法则、工作方式、逻辑体系