Swagger yml编写规则

1网址:

https://swagger.io/docs/specification/2-0/basic-structure/?_ga=2.9202677.1728138275.1595821745-29477687.1594714422

2基本结构:

2.1Metadata

Swagger yml编写规则_第1张图片

#必要字段!Swagger规范版本,必须填2.0,否则该YAML将不能用于Swagger其他组件

2.2Info

Swagger yml编写规则_第2张图片

#必要字段!描述API接口信息的元数据

2.3BaseUrl

Swagger yml编写规则_第3张图片

#Swagger会提供测试用例,host指定测试时的主机名,如果没有指定就是当前主

#定义的api的前缀,必须已/开头,测试用例的主机则为:host+bashPath

2.4MIME types

Swagger yml编写规则_第4张图片

#接口接受和返回的数据类型格式

2.5Paths

Swagger yml编写规则_第5张图片

#必要字段!定义可有可操作的API

2.6Parameter

Swagger yml编写规则_第6张图片
#请求参数

#请求参数

2.7Responses

Swagger yml编写规则_第7张图片

2.8Models

Swagger yml编写规则_第8张图片
Swagger yml编写规则_第9张图片

可重复使用代码

2.9Authentication

Swagger yml编写规则_第10张图片


3demol


Swagger yml编写规则_第11张图片

#必要字段!Swagger规范版本,必须填2.0,否则该YAML将不能用于Swagger其他组件

swagger: '2.0'

#必要字段!描述API接口信息的元数据

info:

  #接口标题

  title: swagger说明文档

  #接口文档的描述

  description: 学习Swagger

  #版本号

  version: 2.0.0

#Swagger会提供测试用例,host指定测试时的主机名,如果没有指定就是当前主机,可以指定端口.

host: 127.0.0.1

#定义的api的前缀,必须已/开头,测试用例的主机则为:host+bashPath

basePath: /userapi

#标签组

tags:

  - name: User

    description: 用户模块接口

#指定调用接口的协议,必须是:"http", "https", "ws", "wss".默认是http.-表示是个数组元素,即schemes接受一个数组参数

schemes:

  - http

  - https

#对应与http协议头request的Accept,调用者可接受类型,默认是*/*,定义的类型必须是http协议定义的 Mime Types,RestfulAPI一般定义成application/json

#这两个是对所有接口的全局设置,在细化的接口中是还可以对应这两个属性来覆盖全局属性

#方便swagger-ui测试,先不限制请求格式:浏览器请求默认没有该头信息"Content-Type":"application/json"出现415

#接口能消费的数据类型格式,在postman测试没问题,在swagger-ui界面测试因为默认没有这个content-type请求头所以先取消,正式开发前端人员会写死

#consumes:

#  - application/json

#接口返回的数据类型格式

produces:

  - application/json

#必要字段!定义可有可操作的API

paths:

  /users:

  #必要字段!定义HTTP操作方法,必须是http协议定义的方法

    get:

      #接口概要

      summary: 查询用户列表

      #接口描述

      description: 查询出所有用户的所有信息

      #接口方法名

      operationId: getUsers

      #标签,方便快速过滤出User相关的接口

      tags:

        - User

      #返回值描述,必要字段

      responses:

        #返回的http状态码

        200:

          description: 所有用户信息或者用户的集合信息

          #描述返回值

          schema:

            $ref: '#/definitions/UsersResponse'

        #执行出错的处理

        default:

          description: 操作异常,执行失败.返回信息描述错误详情

          schema:

            $ref: '#/definitions/ExceptionResponse'


    #针对于同一个url定义两个不同的方法,表示两个接口

    post:

      #接口概要

      summary: 新增一个用户

      #接口描述

      description: 新增一个用户

      operationId: addUser

      #标签,方便快速过滤出User相关的接口

      tags:

        - User

      #请求参数

      parameters:

          #参数key

        - name: user

          #传递方法,formData表示表单传输,还有query表示url拼接传输,path表示作为url的一部分

          #body表示http头承载参数(body只能有一个,有body不能在有其他的)

          in: body

          #参数描述

          description: 新增用户信息

          #参数是否必要,默认false

          required: true

          schema:

            $ref: '#/definitions/User'

      responses:

        #返回的http状态码

        200:

          description: 通过返回值来标示执行结果 返回true表示执行成功

          schema:

            $ref: '#/definitions/  '

        #执行出错的处理

        default:

          description: 操作异常,执行失败.返回信息描述错误详情

          schema:

            $ref: '#/definitions/ExceptionResponse'

  /query:         

    get:

      summary: 根据用户id查询用戶信息

      description: 查询用戶信息

      operationId: getUser

      tags:

        - User

      parameters:

        - name: id

          in: query

          description: 根据id查询用戶信息,是唯一标识

          required: true

          type: integer

      responses:

        200:

          description: 用户的信息

          schema:

              $ref: '#/definitions/User'

        default:

          description: 操作异常,执行失败.返回信息描述错误详情

          schema:

            $ref: '#/definitions/ExceptionResponse'


  /user/{id}:

    #{id}表示id为请求参数,例如/users/1,/users/2都是对该API的请求,此时id即为1和2

    #上面接口中定义了{id},则参数列表中必须包含参数id,并且请求类型in为path

    #http定义的delete方法,删除一个资源

    delete:

      summary: 删除用户

      description: 删除某个用户的信息,被删除的用户将无法登陆

      operationId: deleteUser

      parameters:

        - name: id

          in: path

          type: integer

          required: true

          description: 用户的唯一标示符

      tags:

        - User

      responses:

        200:

          description: 通过返回值来标示执行结果 返回true表示执行成功

          schema:

              $ref: '#/definitions/SuccessResponse'

        default:

          description: 操作异常,执行失败.返回信息描述错误详情

          schema:

              $ref: '#/definitions/ExceptionResponse'


    #http定义的put方法,表示修改一个资源

    put:

      summary: 用户信息修改

      description: 修改用户信息(用户名别名)

      operationId: updateUser

      parameters:

        - name: id

          in: path

          description: 用户名,要修改的数据的唯一标识符

          required: true

          type: integer

        - name: user

          in: body

          description: 新的用户信息

          required: true

          type: string

          schema:

            $ref: '#/definitions/User'

      tags:

        - User

      responses:

        200:

          description: 通过返回值来标示执行结果 返回true表示执行成功

          schema:

            $ref: '#/definitions/SuccessResponse'

        default:

        #描述错误信息

          description: 操作异常,执行失败.返回信息描述错误详情

          schema:

              $ref: '#/definitions/ExceptionResponse'


definitions:

  User:

    #值类型

    type: object

    #定义属性

    properties:

    #属性名

      userId:

        #参数类型,可选的包括array,integer,boolean,string.使用array必须使用items

        type: integer

        #描述

        description: 用户的唯一id

      userName:

        type: string

        description: 用户名

      gender:

        type: string

        description: 性別

      age:

        type: integer

        format: int32

        description: 年齡

      dateOfBirth:

        type: string

        format: date

        description: 生日


  AddUserRequest:

    #值类型

    type: object

    #定义属性

    properties:

    #属性名

      userName:

        type: string

        description: 用户名

      gender:

        type: string

        description: 性別

      age:

        type: integer

        format: int32

        description: 年齡

      dateOfBirth:

        type: string

        format: date

        description: 生日


  UsersResponse:

    properties:

      users:

        description: 返回的user列表

        #针对array,每个条目的格式,type定义为array.必要填写items

        type: array

        items:

          #引用在definitions下定义的Users

          $ref: "#/definitions/User"


  ExceptionResponse:

    type: object

    properties:

      code:

        type: string

        description: 错误码

      msg:

        type: string

        description: 错误信息


  SuccessResponse:

    type: object

    properties:

      status:

      #类型

        type: boolean

        #描述

        description: 是否成功

你可能感兴趣的:(Swagger yml编写规则)