1

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

Open API 仕様 (別名 Swagger) に準拠していないため、Swashbuckle では達成しようとしていることが不可能です。応答オブジェクトには、可能な応答のリストが含まれています。各応答には名前と応答オブジェクトがあります。名前はdefaultまたは HTTP ステータス コードです。応答オブジェクトの仕様によると、ステータス コードごとに 1 つの応答オブジェクトしか存在できません。

任意の HTTP ステータス コードをプロパティ名として使用できます ( HTTP ステータス コードごとに 1 つのプロパティ)。その HTTP ステータス コードに対して予想される応答を記述します。

そうは言っても、412 応答に追加のエラー コードを追加することが正しいかどうかは疑問です。プロキシ サーバーが条件が一致しないことを既に認識している場合、条件付き要求がサーバーに到達しない可能性があります。

于 2016-03-23T20:42:13.410 に答える