このページの内容は Apigee と Apigee ハイブリッドに適用されます。
Apigee Edge のドキュメントを表示する
Apigee に含まれるポリシーを使用して、API プロキシを通過するメッセージを操作できます。ポリシーを使用すると、次のことができます。
- メッセージのフォーマットを変換します(XML から JSON など)。
- メッセージのコンテンツから変数値を設定し、変数値からメッセージを作成します。
- JavaScript、Java、Python などのプロシージャル コードを使用し、複雑な方法でメッセージやデータを処理します。
通常、こうしたポリシーを使用する場合は、入出力変数をフロー変数として指定します。Apigee は実行時にソース変数から入力値を取得し、出力値を出力変数に書き込みます。
このトピックでは、これらの機能について説明します。技術的な詳細については、それぞれのポリシーのリファレンスをご覧ください。
XML と JSON の簡単な処理
Apigee には、XML と JSON 間の変換と XSL を使用した XML の変換を容易にするポリシーが含まれています。
JSON から XML への変換
JSONtoXML ポリシーは、JSON 入力を取得し、XML に変換します。
次の例のポリシーは、request
変数から JSON 形式のメッセージを取得し、変数値を XML 形式のメッセージに置き換えます。入力は <Source>
要素で指定し、出力は <OutputVariable>
要素で指定します。
<JSONToXML name="jsontoxml"> <Source>request</Source> ---> INPUT <OutputVariable>request</OutputVariable> OUTPUT ---> </JSONToXML>
XML から JSON への変換
XMLtoJSON ポリシーは、XML 入力メッセージを JSON に変換します。
次の例のポリシーは、response
変数から XML 形式のメッセージを取得し、変数値を JSON 形式のメッセージに置き換えます。入力は <Source>
要素で指定し、出力は <OutputVariable>
要素で指定します。
<XMLToJSON name="ConvertToJSON"> <Source>response</Source> ---> INPUT <OutputVariable>response</OutputVariable> OUTPUT ---> </XMLToJSON>
XSL を使用した XML の変換
XSLTransform ポリシーを使用すると、XSL を使用してメッセージを変換できます。たとえば、JSON ペイロードを XML に変換した後、スタイルシートとともに XSL Transform ポリシーを使用して必要な変換を行うことができます。
次の例のポリシーは、response
変数から XML 形式のメッセージを取得し、変数値を my_transform.xsl
形式のメッセージに置き換えます。入力は <Source>
要素で指定し、出力は <OutputVariable>
要素で指定します。
<XSL name="TransformXML"> <Source>response</Source> ---> INPUT <ResourceURL>xsl://my_transform.xsl</ResourceURL> --TRANSFORMER-- <OutputVariable>response</OutputVariable> OUTPUT ---> </XSL>
変数データの処理
プロキシ内のデータ処理では、状態データがフロー変数値として扱われることがよくあります。多くの場合、この処理には、変数値を取得または設定するポリシーを使用します。たとえば、変数値からメッセージを作成したり、メッセージのコンテンツを抽出して変数値を設定したりできます。
次の 2 つのポリシーのリファレンスを確認してください。
- AssignMessage ポリシー: 変数値からメッセージを作成します。
- ExtractVariables ポリシー: メッセージのコンテンツから変数を割り当てます。
複雑な変換の作成
付属のポリシーの機能では対処できない複雑なデータ処理を行う場合は、JavaScript、Java、Python などのプロシージャル言語を使用できます。
通常、こうした言語のいずれかでコードを記述し、その言語に固有のポリシーからコードを呼び出します。詳細については、プロシージャル コードの組み込みをご覧ください。