如何在Swagger UI中使用OpenAPI 3.0响应“链接”?

时间:2019-04-24 22:35:51

标签: swagger swagger-ui openapi

我正在编写一个Open API 3.0规范,并试图让response links在Swagger UI v 3.18.3中呈现。

示例:

openapi: 3.0.0
info:
  title: Test
  version: '1.0'
tags: 
  - name: Artifacts
paths:
  /artifacts:
    post:
      tags: 
        - Artifacts
      operationId: createArtifact
      requestBody:
        content:
          application/octet-stream:
            schema:
              type: string
              format: binary
      responses:
        201:
          description: create
          headers:
            Location:
              schema:
                type: string
                format: uri
                example: /artifacts/100
          content:
            application/json:
              schema:
                type: object
                properties:
                  artifactId:
                    type: integer
                    format: int64
          links:
            Read Artifact:
              operationId: getArtifact
              parameters:
                artifact-id: '$response.body#/artifactId'
  /artifacts/{artifact-id}:
    parameters:
      - name: artifact-id
        in: path
        required: true
        schema:
          type: integer
          format: int64
    get:
      tags: 
        - Artifacts
      operationId: getArtifact
      responses:
        200:
          description: read
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary

提供这样的链接:

Response Link Example

这是预期的吗?我问是因为operationId在UI上公开,并且parameters被显示为JSON引用,这使得某些内容似乎无法正确显示。我本来希望有一个超链接或某种东西可以带我到Swagger网页的相应部分,该部分与该链接所引用的API相对应。

1 个答案:

答案 0 :(得分:1)

是的,这就是Swagger UI当前呈现OAS3 links的方式。 links的呈现是their OAS3 support backlog上的事情之一:

  

OAS 3.0支持待办事项
  这是Swagger-UI尚不支持的OAS3规范功能的收集票。
  ...
  []链接不能用于执行其他操作
  []链接级服务器不可用于执行请求