モックの動作
このセクションでは、Talend Cloud API Designerで使用できるさまざまなAPI定義エレメントをモックが処理する方法について説明します。
通常モックでは、APIコントラクトに対応するリクエストに対して固定的な応答を返します。API、リクエストペイロード、またはリクエストヘッダーに定義されているセキュリティに関わらずリクエストに応答します(コンテンツネゴシエーションに使用される[Accept] (承認)ヘッダーを除く) 。
リクエストが行われると、モックでは、ユーザー入力内容(サンプル、デフォルト値、列挙値)に基づいて、または組み込みサンプル値を使用してレスポンスが作成されます。
たとえば、リクエストがオブジェクトを返す場合において、用意されていればオブジェクトのサンプルが使用されます。用意されていない場合は、各プロパティのサンプルが使用され、そこからJSONオブジェクトが作成されます。この動作はレスポンスヘッダーでも同様です。
レスポンス
- オペレーションに応答範囲のみ指定されている場合は、範囲内の最初のステータスが返されます。たとえば、2XXレスポンス範囲を持つ操作は、200レスポンスを返します。
- オペレーションに特定の応答コードや応答範囲またはデフォルトのレスポンスがある場合は、定義されたコードが返されます。たとえば、201のレスポンスと3XXの応答範囲が指定されているオペレーションでは、201のレスポンスが返されます。
- オペレーションに複数の応答範囲が指定されており、定義されたレスポンスステータスがない場合は、範囲の最初のステータスが返されます。たとえば、4XXと5XXの応答範囲が指定されているオペレーションでは、400のレスポンスが返されます。
- オペレーションにデフォルトのレスポンスのみ指定されている場合、返されるレスポンスは、以下のオペレーションメソッドによって異なります:
- 使用するメソッドがPOSTの場合は、201のレスポンスが返されます。
- その他のメソッドでは、レスポンスボディが定義されていない場合は204のレスポンスが返され、レスポンスボディが定義されている場合は200のレスポンスが返されます。
- オペレーションにレスポンスが定義されていない場合は、200のレスポンスが返されます。
- 1XXのレスポンスはモックでサポートされていません。オペレーションに1XXの応答範囲がある場合、またはこの範囲に定義されたレスポンスコードがある場合は、404のレスポンスが返されます。
コンビネーション
- [All of] (すべて): 定義されているサンプルが返されます。データ型にサンプルが定義されていない場合は、型のプロパティが結合され、プロパティレベルで定義されたサンプルが使用されます。プロパティが異なる型で2回定義されている場合は、最後の値のみが保持されます。プリミティブ型は破棄され、オブジェクトのみが返されます。
- [Any of] (いずれか)または[One of] (1つ): 定義されているサンプルが返されます。サンプルが定義されていない場合、リストの最初のタイプからレスポンスが生成されます。
制限
- [Available in request only] (リクエストのみで利用可能): プロパティは、生成されたサンプルから除外されます。
- [Available in response only] (レスポンスのみで使用可能): このプロパティは、生成されたサンプルに含まれています。
- [Available in request and response] (リクエストとレスポンスで利用可能): プロパティは生成されたサンプルに含まれています。
データ型レベルで提供されるサンプルは、プロパティに優先します。[Available in request only] (リクエストでのみ使用可能)と定義されたプロパティがこのサンプルに含まれる場合、レスポンスで返されます。[Available in request only] (リクエストでのみ使用可能)または[Available in request and response] (リクエストとレスポンスで利用可能)なプロパティーがこの例に含まれていない場合は、応答で返されません。