1

我正在使用swashbuckle记录我的 web api 项目,我无法为前置条件失败的情况添加多个响应,swagger 只显示最后一个。

/// <response code="200">OK</response>
/// <response code="401">Unauthorized</response>
/// <response code="400">BadRequest</response>
/// <response code="412">ErrorCode = 1... </response>
/// <response code="412">ErrorCode = 2... </response>
/// <response code="412">ErrorCode = 3... </response>

Swashbuckle 生成如下内容:

{
  ...
  "responses": {
    "200": {
      "description": "OK"
    },
    "400": {
      "description": "BadRequest"
    },
    "401": {
      "description": "Unauthorized"
    },
    "412": {
      "description": "ErrorCode = 3..."
    }
  }
  ...
}

我想看的地方:

{
  ...
  "412": {
    "description": "ErrorCode = 1..."
  },
  "412": {
    "description": "ErrorCode = 2..."
  },
  "412": {
    "description": "ErrorCode = 3..."
  }
}

有什么想法吗?

提前致谢

4

1 回答 1

1

Swashbuckle 无法实现您想要实现的目标,因为它不符合 Open API 规范(又名 Swagger)。响应对象包含可能响应的列表。每个响应都有一个名称和一个响应对象。该名称可以是defaultHTTP 状态代码或 HTTP 状态代码。根据响应对象的规范,每个状态代码只能有一个响应对象:

任何 HTTP 状态代码都可以用作属性名称(每个 HTTP 状态代码一个属性)。描述该 HTTP 状态代码的预期响应。

话虽如此,我怀疑在 412 响应中添加额外的错误代码是否正确。如果代理服务器已经知道条件不匹配,则条件请求可能无法到达您的服务器。

于 2016-03-23T20:42:13.410 回答