OpenAPI (Swagger) で文字列または null になるプロパティを定義するにはどうすればよいでしょうか? 質問する

OpenAPI (Swagger) で文字列または null になるプロパティを定義するにはどうすればよいでしょうか? 質問する

プロパティの 1 つが または として定義されている JSON スキーマ ファイルがありstringますnull

"type":["string", "null"]

YAML に変換すると (OpenAPI/Swagger で使用するために)、次のようになります。

type:
  - 'null'
  - string

しかし、Swagger エディターにはエラーが表示されます。

スキーマの「type」キーは文字列である必要があります

OpenAPI で null 許容プロパティを定義する正しい方法は何ですか?

ベストアンサー1

これは OpenAPI のバージョンによって異なります。

オープンAPI3.1

あなたの例は OpenAPI 3.1 で有効であり、JSON Schema 2020-12 と完全に互換性があります。

type:
  - 'null'   # Note the quotes around 'null'
  - string

# same as
type: ['null', string]

上記は以下と同等です:

oneOf:
  - type: 'null'   # Note the quotes around 'null'
  - type: string

OAS 3.0.x で使用されるキーワードnullable(下記参照) は OAS 3.1 には存在しないため、type に置き換えられて削除されました'null'

オープンAPI3.0.x

Null 許容文字列は次のように定義されます。

type: string
nullable: true

これはJSONスキーマ構文とは異なります。OpenAPIバージョン3.0.xまでは独自のJSONスキーマのフレーバー(「拡張サブセット」)。違いの1つは、は単一の型でなければならず、型のリストにはならないことです。また、型typeはありません。代わりに、'null'nullabletypeキーワードは値を許可するための修飾子として機能しますnull

オープンAPI2.0

OAS2 は をデータ型としてサポートしていない'null'ため、残念ながら のみを使用できます。ただし、 null は OpenAPI 2.0 仕様の一部ではありませんが、type: string一部のツールではベンダー拡張として をサポートしています。x-nullable: true

null の適切なサポートを得るには、OpenAPI v. 3 への移行を検討してください。

おすすめ記事