【问题标题】:Subpaths in Swagger YAML declarationSwagger YAML 声明中的子路径
【发布时间】:2015-07-31 07:57:31
【问题描述】:

我正在尝试通过在 Swagger YAML 中描述来创建 REST 服务。

服务有三个路径:

  • /版本
  • /partners/{partnerId}/users/{userId}/sessions
  • /partners/{partnerId}/books/{bookId}/

我当前描述这些路径的 YAML 文件如下所示:

swagger: '2.0'
info:
  version: '0.0.1'
  title: Test API
host: api.test.com
basePath: /
schemes:
  - https
consumes:
  - application/json
produces:
  - application/json
paths:
  /versions:
    post:
      responses:
        '201':
          description: Returns all versions.
        default:
          description: unexpected error
  /partners/{partnerId}/users/{userId}/sessions:
    parameters:
      - name: partnerId
        in: path
        type: integer
      - name: userId
        in: path
        type: string
    post:
      responses:
        '201':
          description: Returns a UserSession object with info about the user session.
        default:
          description: unexpected error
  /partners/{partnerId}/books/{bookId}/:
    parameters:
      - name: partnerId
        in: path
        type: integer
      - name: bookId
        in: path
        type: string
    get:
      responses:
        '200':
          description: Gets a book.
        default:
          description: unexpected error

在这个 YAML 文件中,参数“partnerId”被声明了两次。

有没有办法制作“子路径”,这样我就不必两次声明路径的 /partners/{partnerId} 部分?

【问题讨论】:

    标签: rest yaml swagger swagger-2.0


    【解决方案1】:

    你可以做的是在顶层声明参数,然后引用它。

    swagger: '2.0'
    info:
      version: '0.0.1'
      title: Test API
    host: api.test.com
    basePath: /
    schemes:
      - https
    consumes:
      - application/json
    produces:
      - application/json
    parameters:
      partnerId:
        name: partnerId
        in: path
        type: integer
    paths:
      /versions:
        post:
          responses:
            '201':
              description: Returns all versions.
            default:
              description: unexpected error
      /partners/{partnerId}/users/{userId}/sessions:
        parameters:
          - $ref: '#/parameters/partnerId'
          - name: userId
            in: path
            type: string
        post:
          responses:
            '201':
              description: Returns a UserSession object with info about the user session.
            default:
              description: unexpected error
      /partners/{partnerId}/books/{bookId}/:
        parameters:
          - $ref: '#/parameters/partnerId'
          - name: bookId
            in: path
            type: string
        get:
          responses:
            '200':
              description: Gets a book.
            default:
              description: unexpected error
    

    【讨论】:

      猜你喜欢
      • 2021-10-21
      • 1970-01-01
      • 2014-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-05
      • 1970-01-01
      • 2019-02-08
      相关资源
      最近更新 更多