多个前提条件使用swashbuckle失败注释

时间:2016-03-23 11:02:16

标签: asp.net-web-api swashbuckle

我使用swashbuckle来记录我的网络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..."
  }
}

有什么想法吗?

提前致谢

1 个答案:

答案 0 :(得分:1)

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

  

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

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