APIエンドポイント

このページは機械翻訳により提供されています。翻訳内容と英語版に相違がある場合は、英語版が優先されます。

API platformでは、2種類のAPIエンドポイントを管理して公開できます。

  • レシピベースのエンドポイント

  • レシピベースのエンドポイントは、外部システムをAPIレシピに接続します。 APIレシピは、データの取得、処理、更新などのタスクを自動化する、トリガーとアクションで構成された内部ワークフローです。 レシピベースのエンドポイントは、APIレシピを外部アプリケーションに安全に公開し、大規模なDevOpsリソースを必要とせずに複雑なビジネスプロセスをサポートします。

  • プロキシベースのエンドポイント

  • プロキシベースのエンドポイントは、WorkatoのAPIゲートウェイを通じてAPIを安全に公開します。 これらのAPIプロキシは、1秒あたり最大10,000件のリクエストという大量のトラフィックを処理でき、外部API連携を一元化して保護するスケーラブルなソリューションを提供します。

両方のタイプのエンドポイントをAPIコレクションに整理して、関連するAPIをグループ化し、一貫した設定を維持し、アクセス管理を簡素化できます。

エンドポイントタイプ

コレクション内でエンドポイントタイプを混在させることはできません。 APIレシピコレクションにはレシピベースのエンドポイントのみを含めることができ、APIプロキシコレクションにはプロキシベースのエンドポイントのみを含めることができます。

APIエンドポイントのセットアップと管理

APIエンドポイントのセットアップ、管理、テストについては、次のガイドを参照してください。

新しいエンドポイントを設定する

APIエンドポイントを作成して設定するには、各エンドポイントタイプに関連するガイドを参照してください。

APIエンドポイントタイプ

APIプロキシおよびレシピエンドポイントの詳細、ならびに適切なオプションを選択するためのガイダンスについては、APIコレクションタイプを参照してください。

スキーマ検証

レシピベースのエンドポイントでは、受信リクエストを事前定義済みのスキーマに対して検証することで、データ整合性を適用できます。 スキーマ検証の詳細をご確認ください。

エンドポイントの有効化または無効化

エンドポイントは有効または無効のいずれかにできます。

状態説明
アクティブ有効なエンドポイントはAPIリクエストを通じて呼び出すことができます。 レシピベースのエンドポイントでは、エンドポイントを有効に設定する前に、関連付けられたレシピが実行中である必要があります。
非アクティブ無効なエンドポイントにはリモートからアクセスできず、APIゲートウェイはすべての呼び出しを拒否します。 ただし、無効なエンドポイントに関連付けられたレシピはバックグラウンドで引き続き実行されます。

エンドポイント設定ページのDetailsタブでActivate endpointまたはDeactivate endpointボタンをクリックすると、APIリクエストを通じてエンドポイントを呼び出せるかどうかを制御できます。 新しく作成または追加されたエンドポイントは、デフォルトで無効です。

コレクション内のAPIプロキシエンドポイントを有効化コレクション内のAPIプロキシエンドポイントを有効化

エンドポイントの削除

エンドポイントを削除すると、コレクションから削除され、そのコレクションを通じて以前にアクセス権を付与されていたクライアントからアクセスできなくなります。

レシピエンドポイントとプロキシエンドポイントのどちらにも有効/無効の状態がありますが、有効化の要件は異なります。

  • レシピエンドポイントは、テストまたはAPIリクエストを通じてアクセスする前に有効化する必要があります。
  • プロキシエンドポイントは有効化せずにテストできますが、外部クライアントが呼び出すには有効化する必要があります。

パステンプレート

パステンプレートを使用すると、パスパラメーターを使ってURLパス内のリソース識別子を指定できます。 APIリクエストが行われると、パスパラメーター内の値は次のいずれかになります。

  • APIレシピ内の関連するデータピルに渡されます(レシピベースのエンドポイントの場合)。
  • ターゲットURLに転送されます(プロキシベースのエンドポイントの場合)。

機能の提供状況

パステンプレートは、APIプレフィックスが有効になっているコレクションでのみ使用できます。

レシピベースのエンドポイントを使用する場合は、まずNew API requestトリガーでデータピルを設定してから、エンドポイントパスパラメーターを設定することをお勧めします。

中かっこ{}を使用して、URLの一部をパスパラメーターとしてマークします。 例: users/{salesforce_id}

URLパステンプレートURLパステンプレート

エンドポイントパスのガイドライン

プロキシエンドポイントパスおよびレシピエンドポイントパスを設定するときは、次のガイドラインを使用してください。

  • エンドポイントパスには、/で区切られた1つ以上のセグメントを含めます。
    • たとえば、ユーザーのエンドポイントを指定するにはusers/{user_id}を使用します。
  • 各セグメントが静的パス(users)またはパラメーター{user_id})のいずれかであることを確認します。
  • データピルの命名規則に一致するように、パスパラメーター名には英数字または_文字を使用します。
  • エンドポイントパス内で同じ名前のパラメーターを複数使用しないでください。
  • 新規または更新済みのエンドポイントパスは、意図した大文字と小文字で入力します。大文字と小文字は区別され、そのまま保持されます。 たとえば、/Path123/Path123/のままです。
  • 各エンドポイントに一意のメソッドとパスの組み合わせがあることを確認します。
    • たとえば、同じコレクション内に/user/{ID}が存在する場合、HTTPメソッドが異なる場合を除き/user/{id}を作成しないでください。
    • 同様に、同じコレクション内に/user/{user_id}が存在する場合、HTTPメソッドが異なる場合を除き/user/{id}を作成しないでください。
      • パスマッチングは左から右に実行され、静的セグメントがパラメーター化されたセグメントより優先されます。

警告

レシピまたはAPIクライアントで使用されているエンドポイントを変更する場合、エラーを防ぐために、対応するレシピまたはスクリプトの更新が必要になることがあります。

APIエンドポイントにsalesforce_idが必要な場合、パスパラメーターを使用してSalesforce id(5003000000D8cuI)を指定できます。

shell
curl -X PUT 'https://apim.workato.com/api-collection/users/5003000000D8cuI' \
    -d '{"Email": "[email protected]","displayName": "Matt Jones","BillingCity": "San Francisco"}'

レシピトリガーは次の出力を返します。

json
{
    "request": {
        "salesforce_id" : "5003000000D8cuI",
        "Email": "[email protected]",
        "displayName": "Matt Jones",
        "BillingCity": "San Francisco"
    },
    "Context": {+}
}

重複するキー

同じ名前空間がパスパラメーター、クエリパラメーター、またはリクエスト本文に存在する場合、パスパラメーター値が優先されます。

次のAPIリクエストを送信すると、salesforce_idデータピルは、リクエスト本文で指定された値(068D00000000pgOIAQ)ではなく、パスパラメーターの値(5003000000D8cuI)を取ります。

shell
curl -X PUT 'https://apim.workato.com/api-collection/users/5003000000D8cuI' \
     -d '{"salesforce_id" : "068D00000000pgOIAQ","Email": "[email protected]","displayName": "Matt Jones","BillingCity": "San Francisco"}'

Last updated: