APIプロキシ変換
APIプロキシ変換を使用すると、WorkatoのAPIゲートウェイを通過するAPIプロキシリクエストとレスポンスを変更できます。 受信リクエストデータをターゲットエンドポイントに転送する前に変換したり、ターゲットレスポンスをクライアントに返す前に変換したりできます。 変換によりAPIの利用が効率化され、データの整合性が向上し、異なるスキーマとデータ形式を整合させることができるため、API利用状況をより詳細に制御できます。
APIプロキシ変換フロー
主要概念
変換プロセスを開始する前に、次の主要概念を確認してください。
クライアント
APIプロキシエンドポイントにリクエストを送信するユーザーまたはアプリケーション。
プロキシスキーマ
クライアントとAPIプロキシの間で交換されるリクエストとレスポンスの構造を指定する、Workato内で定義されたスキーマ。 APIのクライアント向けインターフェイスとして機能します。
ターゲット
APIプロキシによって転送されたAPIリクエストを処理するバックエンドサービス。
ターゲットスキーマ
バックエンドAPIまたは外部APIとも呼ばれる、バックエンドサービスのスキーマ。 このスキーマは、ターゲットに転送されるリクエストと、ターゲットから返されるレスポンスの構造を定義します。 変換により、プロキシスキーマとターゲットスキーマが異なる場合の互換性が確保され、受信リクエストデータをバックエンドサービスの要件に、レスポンスをクライアントの期待に整合させることができます。
サポートされている変換タイプ
APIプロキシ変換では、リクエストとレスポンスに対する次の変更がサポートされています。
スキーマ操作
プロキシまたはターゲットのリクエストとレスポンスの両方のスキーマを変更し、適切な構造とデータフローを確保します。
キーと値のペアのマッピング
機密データのマスキングやカスタムヘッダーの追加など、リクエストまたはレスポンス内のパラメーターを作成または変更します。
インラインFormula
WorkatoのFormula機能を使用して、リクエストまたはレスポンス内の値を操作します。 静的または動的な値(データピルを使用)を適用し、データに基づいて計算または書式設定を実行できます。
条件付きレスポンスマッピング
特定の条件に基づいて異なるHTTPステータスまたはレスポンスを返すために、条件ロジックを適用します。
リクエストメソッド変換
プロキシとターゲット間のHTTPメソッドを変更します。 たとえば、プロキシでのGETリクエストをターゲットでのPOSTリクエストに変換します。 メソッド変換は、リクエストをターゲットに転送アクションでリクエストを変換を選択した場合にのみ使用できます。
最適化されたサポート
最適化されたサポートは、JSONコンテンツタイプでのみ利用できます。 代替コンテンツ形式を管理するには、Plain textを使用します。
部分的にサポートされている変換タイプ
APIプロキシ変換では、リクエストとレスポンスに対する次の変更が部分的にサポートされています。
- リクエスト本文およびレスポンス本文で部分的にサポートされるコンテンツタイプ
- XMLは部分的にサポートされているため、リクエスト本文またはレスポンス本文を変換するときに、
text/plainコンテンツタイプを使用してXML本文を構築できます。
サポートされていない変換タイプ
APIプロキシ変換ではリクエストとレスポンスを柔軟に変更できますが、次の変換はサポートされていません。
動的パス変換
ターゲットURLパスには、データピルまたはFormulaによる動的変換を使用できません。 静的テキストパスのみ使用できます。
クエリパラメーター内の配列またはオブジェクトの変換
GETおよびDELETEリクエストでは、クエリパラメーター内の配列またはオブジェクトを変換できません。 ただし、リクエスト本文では引き続き配列とオブジェクトを使用できます。リクエスト本文およびレスポンス本文でサポートされていないコンテンツタイプ
リクエスト本文とレスポンス本文の両方で、特定のコンテンツタイプに変換を適用することはできません。 これには、multipart form data、URLエンコードフォーム、プレーンテキスト、バイナリデータが含まれます。
複数の条件付きレスポンス
単一のプロキシエンドポイントに対して、複数のレスポンスステータスコードを異なる条件にマッピングすることはできません。 条件ロジックを使用した複数のステータスコードマッピングの処理はサポートされていません。
Formulaの制限
Workatoでは、Formulaを使用してリクエストとレスポンスを変換でき、データを動的に変換する柔軟性が提供されます。 文書化されているほとんどのFormulaはサポートされていますが、一部例外があります。
制限に遭遇した場合、または追加のFormulaサポートが必要な場合は、Customer Success Manager(CSM)にお問い合わせください。
プロキシリクエストの変換
プロキシリクエストを変換すると、受信リクエストデータをターゲットエンドポイントに転送する前に変更できます。 要件に基づいて、HTTPメソッド、エンドポイントパス、クエリパラメーター、ヘッダー、またはリクエスト本文を設定できます。 クライアントスキーマがターゲットスキーマと異なる場合に変換を使用して、不一致のデータ形式または構造を調整します。
前提条件
APIプロキシ変換を適用する前に、次の項目が揃っていることを確認してください。
- 設定済みのAPIプロキシエンドポイント: APIプロキシエンドポイントが適切に設定されていることを確認します。 詳細については、APIプロキシエンドポイント設定のドキュメントを参照してください。
- 定義済みのクライアントスキーマ: プロキシ向けクライアントが想定するリクエストおよびレスポンス形式を設定します。 これは通常、プロキシのセットアップ時に事前定義されます。
- 定義済みのターゲットスキーマ: ターゲットリクエストスキーマとレスポンススキーマを設定します。 これは、ガイド付きセットアップウィザードでサンプルリクエストを送信するか、JSONサンプルを指定することで実行できます。
プロキシリクエストの変換には、主に2つのステップがあります。
- ターゲットエンドポイントスキーマの設定: ターゲットAPIのデータ形式に合わせて、ターゲットエンドポイントのリクエストスキーマを設定します。
- 変換の適用: 変換オプションを使用してリクエストを変更し、クライアントスキーマに一致させるか、特定のターゲットAPI制約に適応させます。
ターゲットエンドポイントスキーマの設定
変換を適用する前に、ターゲットエンドポイントのスキーマを定義する必要があります。 このステップにより、プロキシエンドポイントがターゲットAPIのデータ形式と整合します。 プロセスを完全に制御するために、ガイド付きセットアップまたは手動設定を使用してスキーマを定義できます。
ガイド付きセットアップ
ガイド付きセットアップは、ターゲットAPIのスキーマ設定に役立ちます。 このセットアップでは、ターゲットAPIにサンプルリクエストを送信することで、リクエストスキーマとレスポンススキーマが自動的に生成されます。
ガイド付きセットアップを使用するタイミング
ガイド付きセットアップにより、ターゲットAPIからのリアルタイムレスポンスに基づくスキーマ定義が簡略化されます。 これにより互換性が確保され、変換の基盤が作成されます。
ガイド付きセットアップを使用するには、次の手順を実行します。
プラットフォーム > API platform > APIコレクションに移動します。
エンドポイントが配置されているAPIプロキシコレクションを選択します。
プロキシエンドポイントを選択し、詳細タブを開きます。
変更するエンドポイントを選択し、エンドポイントを編集をクリックします。
プロキシワークフローでリクエストをターゲットに転送アクションをクリックし、設定を開きます。
リクエストをターゲットに転送アクションの設定
ガイド付きセットアップを開始をクリックして、スキーマ定義ウィザードを開きます。 ターゲットAPIにサンプルリクエストを送信しない場合は、ガイド付きセットアップをスキップをクリックしてスキーマを手動で定義します。
ガイド付きセットアップを開始
サンプルリクエストのHTTPメソッドを選択します。
ターゲットAPIのベースURLに追加されるターゲットエンドポイントパスを定義します。
ターゲットURLプレビューを確認し、完全なターゲットURLが正しいことを確認します。
該当する場合は、リクエストコンテンツタイプを指定します。 このフィールドは、POST、PUT、PATCH、DELETEなど、ペイロードが送信されるメソッドで必須です。
JSONテンプレートを使用するか、フィールドを手動で追加して、リクエスト本文を設定します。 このフィールドは、POST、PUT、PATCHなどのメソッドで表示されます。
ターゲットエンドポイントに追加データを送信するために、リクエストパラメーターを定義します。
HTTPリクエストに必要なリクエストヘッダーを追加します。
レスポンスドロップダウンメニューを使用して、JSONやXMLなど、想定されるレスポンスコンテンツタイプを定義します。
リクエストを送信をクリックします。
サンプルリクエストから生成されたスキーマを確認し、ターゲットAPIが想定するデータ形式と一致していることを確認します。 リクエストが成功すると、Workatoに200 - OKコードが表示されます。
HTTP設定の確認
設定を適用をクリックしてスキーマを保存します。 これにより、プロキシエンドポイントがターゲットAPIのデータ形式と整合し、変換の準備が整います。
ターゲットスキーマを設定したら、要件に基づいてリクエストを変更するために、プロキシリクエスト変換の適用に進みます。
手動設定
手動セットアップでは、ターゲットAPIにサンプルリクエストを送信せずに、ターゲットエンドポイントのスキーマを設定できます。 この方法では、リクエストとレスポンスの定義を完全に制御できるため、カスタム設定やガイド付きセットアップが適していない場合に最適です。
手動セットアップを使用するタイミング
ターゲットAPIにサンプルリクエストを送信せずにスキーマフィールドを定義する場合は、手動セットアップを使用します。
プロキシリクエストを設定するときは、変換が必要かどうかを判断します。 パススルーリクエストの場合、変換やリクエストスキーマ設定は不要です。 変換が必要な場合は、ターゲットスキーマを定義し、リクエスト変換を設定できるように、フィールドが動的に表示されます。
ターゲットエンドポイントのスキーマを手動で設定するには、次の手順を実行します。
プラットフォーム > API platform > APIコレクションに移動します。
エンドポイントを含むAPIプロキシコレクションを選択します。
プロキシエンドポイントを選択し、詳細タブを開きます。
設定するエンドポイントを選択し、エンドポイントを編集を選択します。
プロキシワークフローでリクエストをターゲットに転送アクションをクリックし、設定を開きます。
リクエストをターゲットに転送アクションの設定
手動でセットアップリンクをクリックして、スキーマ定義エディターにアクセスします。
手動セットアップを選択
リクエスト本文、リクエストパラメーター、リクエストヘッダーなど、ターゲットリクエストスキーマを定義します。
レスポンススキーマドロップダウンメニューを使用して、ターゲットAPIから想定されるレスポンスを定義します。 この設定は、以降のステップでレスポンスを変換するための基盤となり、レスポンスコンテンツタイプ、レスポンス本文、レスポンスヘッダーが含まれます。
保存をクリックしてスキーマを確定します。
ターゲットスキーマを設定したら、要件に基づいてリクエストを変更するために、プロキシリクエスト変換の適用に進みます。
プロキシリクエスト変換の適用
スキーマのセットアップ後、リクエストをターゲットに転送アクションに戻って変換を設定します。 何を実行しますか?ドロップダウンメニューを使用して、プロキシがリクエストを処理する方法を決定します。
APIプロキシリクエストに対する処理の選択
特定の要件に基づいて、次のいずれかのオプションを選択します。
クエリパラメーターの動作
変換を適用する場合、プロキシは変換ステップで明示的に設定されたクエリパラメーターのみをターゲットAPIに転送します。 変換ステップでマッピングされていないクエリパラメーターは、転送されるリクエストから除外されます。 クライアントリクエストのすべてのクエリパラメーターを渡すには、各パラメーターを明示的にマッピングします。
リクエスト変換を設定して保存したら、必要に応じて、レスポンスをクライアントに返す前にレスポンスを変換するようにレスポンスを返すアクションを設定します。
ターゲットレスポンスの変換
ターゲットレスポンス変換を使用すると、ターゲットから返されたデータをクライアントに返す前に変更できます。 ヘッダーの設定、本文の変更、または条件ロジックの適用により、レスポンスをカスタマイズできます。
前提条件
APIプロキシ変換を適用する前に、次の項目が揃っていることを確認してください。
- 設定済みのAPIプロキシエンドポイント: APIプロキシエンドポイントが適切に設定されていることを確認します。 詳細については、APIプロキシエンドポイント設定のドキュメントを参照してください。
- 定義済みのクライアントスキーマ: プロキシ向けクライアントが想定するリクエストおよびレスポンス形式を設定します。 これは通常、プロキシのセットアップ時に事前定義されます。
- 定義済みのターゲットスキーマ: ターゲットリクエストスキーマとレスポンススキーマを設定します。 レスポンススキーマは、レスポンスをクライアントに返す前に変換を有効にするために不可欠です。 これは、ガイド付きセットアップウィザードでサンプルリクエストを送信するか、JSONサンプルを指定することで実行できます。
レスポンス変換を設定するには、次の手順を実行します。
プラットフォーム > API platform > APIコレクションに移動します。
エンドポイントを含むAPIプロキシコレクションを選択します。
プロキシエンドポイントを選択し、詳細タブを開きます。
変更するエンドポイントを選択し、エンドポイントを編集を選択します。
エンドポイント設定でレスポンスを返すアクションをクリックし、クライアントに返す前にターゲットレスポンスを処理する方法を定義します。
レスポンスを返すアクションの設定
ターゲットレスポンス変換の適用
APIの要件に一致する変換オプションを選択します。 各オプションは、クライアントに返す前にレスポンスを変更する方法を決定します。
条件付きレスポンスマッピング
条件付きレスポンスマッピングを使用すると、定義された条件に基づいて異なるレスポンスを返すことができます。 プロキシリクエストまたはターゲットレスポンスの両方からの動的な値を使用して、1つの条件付きレスポンスを設定できます。 たとえば、HTTPステータスコードなどのフィールドを評価し、条件が満たされているかどうかに応じて指定されたレスポンスを返すことができます。
条件付きレスポンスマッピングを設定するには、次の手順を実行します。
変換エディターで条件付きレスポンスステップを追加します。 このステップでは、HTTPステータスコードやその他のレスポンスデータなど、定義された条件に基づいてターゲットAPIのレスポンスを評価します。
条件付きレスポンスステップの追加
評価するレスポンスのデータフィールドを選択します。たとえば、ステータスコードStep 2データピルや特定のレスポンスデータを選択します。
データフィールドの設定
結果をトリガーする条件を設定します。 たとえば、エラーコードを確認するには、ステータスコードStep 2が400に等しい、などの条件を使用できます。
条件の値を定義します。 たとえば、特定のステータスコードを監視している場合は、値を400または別の関連コードに設定します。
何を実行しますか?ドロップダウンメニューを使用して、条件が満たされた場合のレスポンスの処理方法を選択します。 レスポンスをカスタマイズするには、変換されたレスポンスを返すなどのオプションを選択できます。
レスポンスの定義
変換されたレスポンスを返すが選択されている場合は、レスポンスドロップダウンメニューを使用して、200 - OKなどのステータスコードまたはメッセージを指定します。 レスポンスをカスタマイズするために、必要に応じてレスポンス本文とレスポンスヘッダーを設定します。 レスポンスドロップダウンメニューは、レスポンスを変換する場合にのみ適用されることに注意してください。
何を実行しますか?ドロップダウンメニューを再度使用して、条件が満たされない場合のレスポンスの処理方法を選択します。 たとえば、変換せずにレスポンスを返すまたは別のオプションを選択できます。
Workato Formulaによるデータの変換
Workato Formulaを使用すると、APIリクエストとレスポンス内のデータを動的に変換できます。 Formulaを使用して、データ形式の効率化、算術計算の実行、文字列の操作を行うことができます。 文書化されているほとんどのFormulaはサポートされていますが、一部例外があります。 詳細については、WorkatoのFormulaドキュメントを参照してください。
Formula変換の例
Formulaを使用して、リクエストパラメーターのデフォルト値を定義できます。 たとえば、入力がない場合にデフォルト値を設定するFormulaを使用して、リクエストパラメーターを定義できます。
リクエストパラメーターの変換
この例では、検索語句Step 1データピルが、Formula.presence || 'Featured products'を使用して検索語句フィールドにマッピングされます。 このFormulaは、検索語句が指定されていない場合に、検索語句リクエストパラメーターをFeatured productsに設定します。
Formulaの制限
Formulaは、WorkatoのFormulaインタープリターでサポートされている機能に限定されます。 利用可能なデータ形式に基づいて新しい値を計算できますが、文書化されたFormula関数に従う必要があります。
テストリクエストの送信
変換を設定したら、テストリクエストを送信して、すべてが期待どおりに動作することを確認します。 テストリクエストを送信するときは、次の点を確認します。
- リクエスト変換が、パラメーター、ヘッダー、本文に正しく適用されていること。
- レスポンス変換により、クライアントに返す前に、レスポンス本文とヘッダーが意図したとおりに変更されていること。
- HTTPステータスコードが正確で、意図したレスポンス動作を反映していること。
- テストデータが実際のシナリオを反映し、エッジケースを確認できること。
テストにより、APIプロキシ変換が適切に機能し、クライアントとターゲットの要件を満たしていることを確認できます。
Last updated:
ターゲットレスポンススキーマの設定
リクエストを変換
リクエストヘッダーを変換
リクエスト本文を変換