メインコンテンツまでスキップ

External Documentationオブジェクト

拡張ドキュメントの外部リソースを参照できるようにします。

固定フィールド

フィールド名タイプ説明
説明stringターゲットドキュメントの説明。CommonMark 構文はリッチ テキスト表現に使用できます (MAY)。
URLstring必須。ターゲットドキュメントの URL。これは URL の形式でなければなりません。

このオブジェクトは、仕様拡張機能を使用して拡張できます。

External Documentationの例

{
"description": "Find more info here",
"url": "https://example.com"
}
description: Find more info here
url: https://example.com

Parameterオブジェクト

単一の操作パラメータを記述します。

一意のパラメータは、名前場所の組み合わせによって定義されます。

パラメータの場所

このinフィールドで指定できるパラメータの場所は 4 つあります。

  • path - Path Templateと一緒に使用されます。パラメータ値は実際には操作の URL の一部です。これには、API のホストまたはベース パスは含まれません。たとえば、/items/{itemId} では、パス パラメータはitemIdです。
  • query - URL に追加されるパラメータ。たとえば、/items?id=### では、クエリ パラメータは idです。
  • header - リクエストの一部として予期されるカスタム ヘッダー。RFC7230 では、ヘッダー名は大文字と小文字を区別しないと規定されていることに注意してください。
  • cookie - 特定の cookie 値を API に渡すために使用されます。

固定フィールド

フィールド名タイプ説明
名前string必須。パラメータの名前。パラメータ名は大文字と小文字が区別されます。
in"path"の場合、nameフィールドはPaths オブジェクトpathフィールド内で発生するテンプレート式に対応しなければなりません。詳細については、「パスのテンプレート化」を参照してください。in"header"で、nameフィールドが"Accept""Content-Type"または "Authorization"の場合、パラメータ定義は無視されます(SHALL)。その他すべての場合、 nameinプロパティで使用されるパラメータ名に対応します。
INstring必須。パラメータの場所。可能な値は"query""header""cookie""path"またはです。
説明stringパラメータの簡単な説明。これには使用例が含まれる可能性があります。CommonMark 構文はリッチ テキスト表現に使用できます (MAY)。
必要booleanこのパラメータが必須かどうかを決定します。パラメータの場所"path"の場合、このプロパティは必須であり、その値は trueでなければなりません。それ以外の場合は、プロパティを含めてもよく、そのデフォルト値は falseです。
廃止されたbooleanパラメータが非推奨であり、使用されないよう移行すべきであることを指定します。デフォルト値はfalse です。
allowEmptyValueboolean空の値のパラメータを渡す機能を設定します。これはqueryパラメータに対してのみ有効で、空の値を持つパラメータを送信できます。デフォルト値はfalse です。styleが使用され、動作がn/a(シリアル化できない) の場合、 allowEmptyValueの値は無視されます。このプロパティは今後のリビジョンで削除される可能性があるため、使用は推奨されません。

パラメータのシリアル化の規則は、2 つの方法のいずれかで指定されます。より単純なシナリオでは、schemastyleでパラメータの構造と構文を説明できます。

フィールド名タイプ説明
スタイルstringパラメータ値の型に応じて、パラメータ値がどのようにシリアル化されるかを説明します。デフォルト値 ( inの値に基づく): queryの場合は formpath-の場合はsimpleheader-の場合simplecookie-の場合はformになります。
爆発するbooleanこれが true の場合、 objectorarray型のパラメータ値は、マップの配列またはキーと値のペアの値ごとに個別のパラメータを生成します。他のタイプのパラメータの場合、このプロパティは効果がありません。styleformの場合、デフォルト値はtrue です。他のすべてのスタイルの場合、デフォルト値は falseです。
許可予約済みbooleanRFC3986 :/?#[]@!$&'()*+,;=で定義されているように、パーセント エンコーディングなしでパラメータ値に予約文字を含めることを許可する必要があるかどうかを決定します。このプロパティは、値がinqueryパラメータにのみ適用されます。デフォルト値はfalse です。
スキーマスキーマオブジェクトパラメータに使用される型を定義するスキーマ。
どれでもパラメーターの潜在的な値の例。この例は、指定されたスキーマおよびエンコード プロパティが存在する場合は、それらと一致する必要があります。exampleフィールドとexamplesフィールドは相互に排他的です。さらに、例を含む schemaを参照する場合、そのexample値はスキーマによって提供される例をオーバーライドするものとします(SHALL) 。JSON または YAML で自然に表現できないメディア タイプの例を表すために、必要に応じてエスケープを使用して文字列値に例を含めることができます。
Map[ string,オブジェクトの例| 参照オブジェクト]パラメーターの潜在的な値の例。各例には、パラメータのエンコーディングで指定された正しい形式の値が含まれている必要があります (SHOULD)。examplesフィールドとexamplesフィールドは相互に排他的ですexample。さらに、例を含む schemaを参照する場合、その値はスキーマによって提供される例をオーバーライドするものとします(SHALL) 。

より複雑なシナリオでは、contentプロパティでメディア タイプとパラメーターのスキーマを定義できます。パラメータには、schemaプロパティまたはcontentプロパティのいずれかを含める必要がありますが、両方を含めることはできません。exampleまたはexamplesschemaオブジェクトと併せて提供される場合、サンプルはパラメータに対して規定されたシリアル化戦略に従わなければなりません (MUST)。

フィールド名タイプ説明
コンテンツMap[ string,メディア タイプ オブジェクト]パラメータの表現を含むマップ。キーはメディア タイプであり、値はそれを説明します。マップにはエントリを 1 つだけ含める必要があります。

スタイル値

単純なパラメータをシリアル化する一般的な方法をサポートするために、style値のセットが定義されます。

styletypeinコメント
マトリックスprimitive、、array_objectpathRFC6570で定義されたパススタイルパラメータ
ラベルprimitive、、array_objectpathRFC6570で定義されたラベルスタイルパラメータ
形状primitive、、array_objectquerycookieRFC6570で定義されたフォーム スタイル パラメータ。このオプションは、OpenAPI 2.0 の値( false の場合) または(true の場合)collectionFormatに置き換えます。csv``explode``multi``explode
単純arraypathheaderRFC6570で定義された単純なスタイルのパラメーター。このオプションは、 OpenAPI 2.0 の値collectionFormatに置き換えられますcsv
スペース区切りarrayobjectqueryスペースで区切られた配列またはオブジェクトの値。このオプションは、OpenAPI 2.0 のcollectionFormat等しいを置き換えます。ssv
パイプ区切り付きarrayobjectqueryパイプで区切られた配列またはオブジェクトの値。このオプションは、OpenAPI 2.0 のcollectionFormat等しいを置き換えます。pipes
ディープオブジェクトobjectqueryフォームパラメータを使用してネストされたオブジェクトをレンダリングする簡単な方法を提供します。

スタイルの例

という名前のパラメータがcolor次のいずれかの値を持つと仮定します。

   string -> "blue"   array -> ["blue","black","brown"]   object -> { "R": 100, "G": 200, "B": 150 }

次の表に、各値のレンダリングの違いの例を示します。

styleexplodeemptystringarrayobject
matrixfalse;color;color=blue;color=blue,black,brown;color=R,100,G,200,B,150
matrixtrue;color;color=blue;color=blue;color=black;color=brown;R=100;G=200;B=150
labelfalse..blue.blue.black.brown.R.100.G.200.B.150
labeltrue..blue.blue.black.brown.R=100.G=200.B=150
formfalsecolor=color=bluecolor=blue,black,browncolor=R,100,G,200,B,150
formtruecolor=color=bluecolor=blue&color=black&color=brownR=100&G=200&B=150
simplefalsen/ablueblue,black,brownR,100,G,200,B,150
simpletruen/ablueblue,black,brownR=100,G=200,B=150
spaceDelimitedfalsen/an/ablue%20black%20brownR%20100%20G%20200%20B%20150
pipeDelimitedfalsen/an/ablue|black|brownR|100|G|200|B|150
deepObjecttruen/an/an/acolor[R]=100&color[G]=200&color[B]=150

このオブジェクトは、仕様拡張機能を使用して拡張できます。

パラメータオブジェクトの例

64 ビット整数の配列を含むヘッダー パラメーター:

{
"name": "token",
"in": "header",
"description": "token to be passed as a header",
"required": true,
"schema": {
"type": "array",
"items": {
"type": "integer",
"format": "int64"
}
},
"style": "simple"
}
name: token
in: header
description: token to be passed as a header
required: true
schema:
type: array
items:
type: integer
format: int64
style: simple

文字列値のパスパラメータ:

{
"name": "username",
"in": "path",
"description": "username to fetch",
"required": true,
"schema": {
"type": "string"
}
}
name: username
in: path
description: username to fetch
required: true
schema:
type: string

文字列値のオプションのクエリ パラメータ。クエリ パラメータを繰り返すことで複数の値を許可します。

{
"name": "id",
"in": "query",
"description": "ID of the object to fetch",
"required": false,
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"style": "form",
"explode": true
}
name: id
in: query
description: ID of the object to fetch
required: false
schema:
type: array
items:
type: string
style: form
explode: true

特定のタイプの未定義パラメータを許可する自由形式のクエリ パラメータ:

{
"in": "query",
"name": "freeForm",
"schema": {
"type": "object",
"additionalProperties": {
"type": "integer"
}
},
"style": "form"
}
in: query
name: freeForm
schema:
type: object
additionalProperties:
type: integer
style: form

contentシリアル化の定義に使用する複雑なパラメーター:

{
"in": "query",
"name": "coordinates",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"lat",
"long"
],
"properties": {
"lat": {
"type": "number"
},
"long": {
"type": "number"
}
}
}
}
}
}
in: query
name: coordinates
content:
application/json:
schema:
type: object
required:
- lat
- long
properties:
lat:
type: number
long:
type: number