メッセージの作成、アクセス、変換

Apigee Edge に含まれているポリシーを使用すると、API プロキシを流れるメッセージを操作できます。ポリシーを使用すると、次のことができます。

  • XML から JSON など、フォーマット間でメッセージを変換します。
  • メッセージのコンテンツから変数値を設定し、変数値からメッセージを作成します。
  • JavaScript、Java、Python などのプロシージャル コードを使用し、複雑な方法でメッセージやデータを処理します。

一般に、こうしたポリシーを使用する場合は、入出力変数をフロー変数として指定します。Apigee Edge は実行時にソース変数から入力値を取得し、その出力値を出力変数に書き込みます。

このトピックでは、こうした機能について説明します。技術的な詳細については、それぞれのポリシーのリファレンスをご覧ください。

XML と JSON の簡単な処理

Apigee Edge には、XML と JSON 間の変換と XSL を使用した XML の変換を容易にするポリシーが含まれています。

JSON から XML への変換

JSON to XML ポリシーは JSON 入力を取得し、XML に変換します。

次のポリシーの例では、ポリシーは request 変数から JSON 形式のメッセージを取得し、変数値を XML 形式のメッセージに置き換えます。入力は <Source> 要素で指定し、出力は <OutputVariable> 要素で指定します。

<JSONToXML name="jsontoxml">
     <Source>request</Source>
     <OutputVariable>request</OutputVariable>
</JSONToXML>

XML から JSON への変換

XML to JSON ポリシーは、XML 入力メッセージを JSON に変換します。

次のポリシーの例では、ポリシーは response 変数から XML 形式のメッセージを取得し、変数値を JSON 形式のメッセージに置き換えます。入力は <Source> 要素で指定し、出力は <OutputVariable> 要素で指定します。

<XMLToJSON name="ConvertToJSON">
   <OutputVariable>response</OutputVariable>
   <Source>response</Source>
</XMLToJSON>

XSL を使用した XML の変換

XSL 変換ポリシーを使用すると、XSL を使用してメッセージを変換できます。たとえば、JSON ペイロードを XML に変換した後、スタイルシートとともに XSL Transform ポリシーを使用して、必要な変換を行います。

次のポリシーの例では、ポリシーは response 変数から XML 形式のメッセージを取得し、変数値を my_transform.xsl 形式のメッセージに置き換えます。入力は <Source> 要素で指定し、出力は <OutputVariable> 要素で指定します。

<XSL name="TransformXML">
    <ResourceURL>xsl://my_transform.xsl</ResourceURL>
    <Source>response</Source>
    <OutputVariable>response</OutputVariable>
</XSL>

    <Source>request</Source>
    <ResourceURL>xsl://XSL-Transform-1.xsl</ResourceURL>
    <OutputVariable/>

変数データの処理

プロキシ内のデータ処理では、状態データがただフロー変数値として扱われることがよくあります。多くの場合、この処理には、変数値を取得または設定するポリシーを使用します。たとえば、変数値からメッセージを作成することや、メッセージのコンテンツを抽出して変数値を設定できます。

次の 2 つのポリシーのリファレンスを確認してください。

複雑な変換の作成

含まれているポリシーの機能では対処できない複雑なデータを処理する場合は、JavaScript、Java、Python などのプロシージャル言語を使用できます。

通常、こうした言語のいずれかでコードを記述し、その言語に固有のポリシーからコードを呼び出します。詳細については、プロシージャル コードの組み込みをご覧ください。