web-dev-qa-db-ja.com

OpenAPI(Swagger)で文字列またはnullのプロパティを定義する方法は?

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

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

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

type:
  - 'null'
  - string

ただし、Swagger Editorにはエラーが表示されます。

スキーマの「タイプ」キーは文字列でなければなりません

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

23
Vaibhav Patil

type型の配列として

type:
  - string
  - 'null'

openAPI/SwaggerではNOT validです(JSONスキーマでは有効ですが)。 OpenAPIのtypeキーワードには単一の型が必要であり、型の配列にすることはできません。

nullのサポートは、使用するOpenAPIのバージョンによって異なります。

  • OpenAPI 3.0で、 nullable キーワードを使用して、null許容型を定義します。

    type: string
    nullable: true   # <----
    
  • OpenAPI 2.0はデータ型としてnullをサポートしていないため、2.0を使用する場合は運がありません。使用できるのはtype: stringのみです。ただし、一部のツールは、ヌルがOpenAPI 2.0仕様の一部ではない場合でも、ベンダー拡張としてx-nullable: trueをサポートしています。

36
Helen