プロパティの 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'
nullable
type
キーワードは値を許可するための修飾子として機能しますnull
。
オープンAPI2.0
OAS2 は をデータ型としてサポートしていない'null'
ため、残念ながら のみを使用できます。ただし、 null は OpenAPI 2.0 仕様の一部ではありませんが、type: string
一部のツールではベンダー拡張として をサポートしています。x-nullable: true
null の適切なサポートを得るには、OpenAPI v. 3 への移行を検討してください。