API Connect での変数参照
API Connect では、API 定義の別の変数を参照できます。
API の定義時、カスタム・ポリシーの作成時、あるいは別のポリシーまたはロジック構成体の構成時に、コンテキスト変数およびプロパティーへの参照を含めることができます。
変数参照の解決は、ステージング時に固定される静的変数の場合は API が製品にステージングされたとき、各 API 呼び出しで変わる可能性のある変数の場合は API が呼び出されたときに行われます。
変数のタイプ
- コンテキスト変数
コンテキスト変数は、API の呼び出し時に関連する変数であり、呼び出しの入力、呼び出しのパス、呼び出し時のメッセージなどです。コンテキスト変数は、その特定のコンテキストを構成する変数の 1 つです。
コンテキスト変数は複数のパーツで構成することができます (例: request.headers)。
使用可能なコンテキスト変数のリストについては、API Connect のコンテキスト変数を参照してください。
- API プロパティー
API プロパティーは API 内の変数であり、その値は API がステージングまたは公開されるカタログに依存します。API プロパティーを参照することにより、異なるカタログ間で API のインスタンスにわずかな相違がある場合に、これらのカタログで同じ API 定義を使用できます。例えば、アセンブリーには、API プロパティーの値から判別される特定のカタログが使用されている場合にそのケースを実行する if 構成体を含めることができます。API プロパティーは、パスワードなどの値をエンコードしてその値を隠すために使用することもできます。
API プロパティーは名前によって参照されます。
API プロパティーのリストについては、API プロパティーを参照してください。
詳しくは、API プロパティーの設定を参照してください。
変数を参照するためのメソッド
- GatewayScript および JavaScript での参照
- JavaScript または GatewayScript のコンテキストで変数を参照する際は、以下のいずれかのメソッドを使用します。
apim.getvariable('Variable')
ここで、apim.setvariable('Variable', Value, Action)
- Variable は、参照するコンテキスト変数または API プロパティーの名前です。
- Value は、設定する変数のストリング値です。リテラル値や、別の変数でも構いません。例えば、指定した変数を要求内の Content-Type ヘッダーの値に設定するには、Value を request.headers.content-type として指定します。このプロパティーが必要となるのは、set または add がアクションとして指定されている場合のみです。
- Action は、変数を適用するアクションです。有効なオプションは、以下のとおりです。
- set
- add
- clear
コンテキスト変数の値を取得するには getvariable メソッドを使用し、コンテキスト変数または API プロパティーの値を変更するには setvariable メソッドを使用します。
このタイプの参照を使用する状況の例としては、以下があります。- GatewayScript ポリシーおよび JavaScript ポリシー。詳しくは、GatewayScript (gatewayscript)およびJavaScript (javascript)を参照してください。
- if ロジック構成体詳しくは、ifを参照してください。
- ユーザー定義ポリシー. 詳しくは、『ポリシーの作成』を参照してください。
- インライン参照
- 多くの場合、以下の構文を使用すると、より簡単に参照を行うことができます。
ここで、Variable は参照するコンテキスト変数または API プロパティーの名前です。$(Variable)
このタイプの参照を使用する状況の例としては、以下があります。- Invoke ポリシーまたは Proxy ポリシーによって呼び出される URL。ポリシーについて詳しくは、Invoke (invoke)またはProxy (proxy)を参照してください。
- ポリシーの Map。詳しくは、Map (map)を参照してください。
注: map ポリシーはインラインで変数を参照しますが、参照できる変数は、map ポリシーへの入力として定義されていて、マッピングの from フィールドで指定されたものに限られます。