OpenAPIのプロパティ名と配置の確認

各オブジェクトで許可されるプロパティ名と配置を確認してください。

説明

OpenAPI 3.0の固定プロパティを誤記したり、別のオブジェクトに配置したりすると、ツールが内容を無視するか文書を拒否する場合があります。許可された場所のx-拡張や、スキーマ内の利用者が定義するデータ項目名とは区別してください。

想定される影響

説明や契約情報が文書に表示されなくなったり、クライアント生成や検証に失敗したりする場合があります。

対処方法

使用するOpenAPIバージョンのオブジェクト定義に合わせ、表記、大文字と小文字、配置を確認してください。拡張は許可された場所でx-名を使い、利用するツールの対応を確認してください。実際のデータ項目名を文書の固定プロパティと取り違えて変更しないでください。

例

レスポンスとタグにあるdescriptionの表記を比較する抜粋です。参照しているexampleSecurityのスキーム定義は省略しています。

変更前

json
{
  "openapi": "3.0.0",
  "info": {
    "title": "Simple API Overview",
    "version": "1.0.0"
  },
  "paths": {
    "/": {
      "get": {
        "operationId": "listVersionsv2",
        "summary": "List API versions",
        "responses": {
          "200": {
            "descrinnption": "200 response"
          }
        }
      }
    }
  },
  "security": [
    {
      "exampleSecurity": []
    }
  ],
  "tags": [
    {
      "name": "pets",
      "desdddcription": "Everything about your Pets",
      "externalDocs": {
        "url": "http://docs.my-api.com/pet-operations.htm"
      }
    },
    {
      "name": "store",
      "description": "Access to Petstore orders",
      "externalDocs": {
        "url": "http://docs.my-api.com/store-orders.htm"
      }
    }
  ]
}

変更後

json
{
  "openapi": "3.0.0",
  "info": {
    "title": "Simple API Overview",
    "version": "1.0.0"
  },
  "paths": {
    "/": {
      "get": {
        "operationId": "listVersionsv2",
        "summary": "List API versions",
        "responses": {
          "200": {
            "description": "200 response"
          }
        }
      }
    }
  },
  "security": [
    {
      "exampleSecurity": []
    }
  ],
  "tags": [
    {
      "name": "pets",
      "description": "Everything about your Pets",
      "externalDocs": {
        "url": "http://docs.my-api.com/pet-operations.htm"
      }
    },
    {
      "name": "store",
      "description": "Access to Petstore orders",
      "externalDocs": {
        "url": "http://docs.my-api.com/store-orders.htm"
      }
    }
  ]
}

変更前のdescrinnptionとdesdddcriptionを、それぞれdescriptionに修正します。APIが返すデータ構造を変更する例ではありません。

参考資料