Swagger2从零开始

Posted itmeatball

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Swagger2从零开始相关的知识,希望对你有一定的参考价值。

2.1从一个最简单的API文档开始

#声明OPENAPI规范的版本

swagger:"2.0"

#声明API相关信息,如版本信息、描述信息            

info:

  version:1.0.0

  title:Simple API

  description:A simple API to learn how to write OpenAPI Specification

#提供消费者根URL让消费者可以根据这个URL来访问根下的所有API

schemes:

  -https                                        #规定可用协议

host:rui.api                                 #主机

basePath:/openai101                 #根路径

#定义一个API的操作

paths: 

      /persons:                                                                                             #添加一个/person的路径,用来访问一组用户信息

       get:

          summary:Gets some persons

          description:Returns a list containing all persons.                           #在路径中添加一个HTTP动词来操作所需要的资源,这样一来我们调get https://rui.api/openapi/101/persons 就可以获取一组用户信息了

          responses:                                                                                     #响应类型通过状态码来定义,如200 OK 404 not found

             200:                                                         

                description:A list of Person

                schema:                                                                                    #定义响应内容,通过返回消息中的schema属性来描述清楚具体的返回内容

                    type:array

                    items:

                        required:

                             -username

                        properties:

                            firstName:

                                  type:string

                            lastName:

                                   type:string

                            userName:

                                   type:string

 

 

2.2定义请求参数

#在get方法中增加请求参数: 

        paths:

                   /persons:

                       get:

             summary: Gets some persons

            description: Returns a list containing all persons. The list supports paging. 

              #在get方法中添加分页参数,这样消费者可以通过get /persons?pageSize=20&pageNumber=2来访问第2页的用户信息
           parameters:                                                       
- name: pageSize in: query description: Number of persons returned type: integer - name: pageNumber in: query description: Page number type: integer

2.3定义路径参数
  /persons/{username}:  #添加一个/persons/{username}的接口操作来获取指定username的用户信息,其中{username}是路径请求中的参数
    get:
      summary: Gets a person
      description: Returns a single person for its username
      parameters:
        - name: username                       #因为{username}是路径参数,我们需要像请求参数一样将它添加到parameters属性中
          in: path                             #通过in来表示这是一个路径参数
          required: true
          description: The person‘s username
          type: string
      responses:
        200:
          description: A Person
          schema:
            required:
              - username
            properties:
              firstName:
                type: string
              lastName:
                type: string
              username:
                type: string
        404:
          description: The Person does not exists.

2.4定义响应消息
      responses:
        200:
          description: A Person
          schema:
            required:
              - username
            properties:
              firstName:
                type: string
              lastName:
                type: string
              username:
                type: string
2.5定义消息体参数
    post:
      summary: Creates a person
      description: Adds a new person to the persons list.
      parameters:
        - name: person
          in: body                               #通过in属性说明该参数是在body消息体中的
          description: The person to create.
          schema:
            required:
              - username
            properties:
              firstName:
                type: string
              lastName:
                type: string
              username:
                type: string
      responses:
        204:
          description: Persons succesfully created.
        400:
          description: Persons couldn‘t have been created.




以上是关于Swagger2从零开始的主要内容,如果未能解决你的问题,请参考以下文章

从零开始配置vim(27)——代码片段

从零开始配置vim(27)——代码片段

如何从零开始集成DTM Android SDK

React native 从零开始

React native 从零开始

React native 从零开始