API ゲートウェイ機能

Mule Runtime には、埋め込み API ゲートウェイが含まれています。このゲートウェイを使用すると、すべてのユーザがコードを記述することなく、たとえば、基本認証ポリシーを Mule アプリケーション上に適用し、受信/送信メッセージを強化して、その他の複雑な機能を API に追加できます。
つまり、API ゲートウェイを使用すると、バックエンド API とサービスの上に専用のオーケストレーションレイヤを追加できるため、実装に関する懸念事項からオーケストレーションを切り離すことができます。API Manager のガバナンス機能を使用して、調整、セキュリティ、キャッシュ、ログなどの機能を API に適用できます。

apigateway

ポリシーを適用し、分析情報を生成する必要がある場合、次のいずれかを使用する必要があります。

  • Mule アプリケーションで定義されている API。

  • 既存のバックエンド実装をプロキシする Mule アプリケーション。

主要概念

API

API は一連のコンポーネントの抽象化です。これは Mule アプリケーション開発の複雑さをカプセル化するものであり、アセットにアクセスするための簡単で再利用可能な方法を提供します。
自動検出要素を使用して API を API Manager にペアリングすることで、その API にポリシーを適用することができます。

詳細は、​API 自動検出について​を参照してください。

HTTP/HTTPS API

HTTP Exchange アセットを使用して作成する API。API ゲートウェイは、API Manager により追跡される関連付けられた Mule アプリケーションに、実装エンドポイントとして定義された HTTP または HTTPS リスナがあることを前提とします。

通常の使用方法​: REST ベースの API。

「API アセットの作成」​を参照してください。

RAML API

RAML/OAS Exchange アセットを使用して作成する API。API ゲートウェイは、API Manager により追跡される関連付けられた Mule アプリケーションに、実装エンドポイントとして定義された RAML/OAS ルータを備えた HTTP または HTTPS リスナがあることを前提とします。

このアセットを Exchange で使用できるようにするには、API Designer を使用して API を設定した後、API を Exchange にエクスポートすることができます。

通常の使用方法​: RAML/OAS ベースの API。

WSDL API

WSDL Exchange アセットを使用して作成する API。API ゲートウェイは、API Manager により追跡される関連付けられた Mule アプリケーションに、実装エンドポイントとして定義された WSDL ルータを備えた HTTP または HTTPS リスナがあることを前提とします。

通常の使用方法​: WSDL ベースの API。

API 自動検出

API 自動検出を使用すると、Mule アプリケーションの HTTP エンドポイントを表す API を API Manager で管理できます。
基本的に、これは HTTP リソースを API Manager 内のその API 定義にリンクするメカニズムです。

API 自動検出により、API ゲートウェイは、API Manager 内の対応するペアリング済みの API で定義された設定を同期できます。自動検出を機能させるには、ゲートウェイとして機能する Mule Runtime に、Anypoint Platform 組織のログイン情報が必要です。

詳細は、​API 自動検出​に関する記事を参照してください。

API プロキシ

「自動生成プロキシ」とも呼ばれる API プロキシは、Mule アプリケーションでの API Manager の使いやすさを向上するよう設計されています。

通常の使用方法​: API ゲートウェイ機能を使用する必要があるがバックエンド API が Mule Runtime に基づいていない場合や、API は Mule Runtime に基づいているが閉じられたコードのために対応する自動検出要素を定義できない場合に使用します。

api gateway capabilities mule4 62bf9

プロキシエンドポイントとして API を設定した場合、Anypoint Platform を使用して、事前設定済みの Mule アプリケーションをダウンロードできます。アプリケーションが Mule Runtime にデプロイされており、正しい Platform ログイン情報を使用している場合、アプリケーションの API は API Manager により自動的に追跡されます。

Mule アプリケーションの作成方法を知る必要はありません。正しく設定されたランタイムにアプリケーションをデプロイするだけです。

Anypoint Platform は Runtime Manager を介して、Cloudhub にプロキシを直接デプロイしたり、Mule エージェントを使用してプロキシをデプロイしたりできます。

HTTP ではなく HTTPS を使用する場合は、次の手順を実行できます。

  1. 自動生成プロキシを Anypoint Studio にインポートします。

  2. 使用する証明書を指定します。

  3. アプリケーションを Cloudhub またはランタイムインスタンスにデプロイします。

API プラットフォームからダウンロードできるプロキシは、アプリケーションネットワークのデプロイを高速化するための便利なツールです。
ただし、ユーザは自動生成プロキシを使用することに制限されません。正しく設定された自動検出を備えた Mule アプリケーションを使用すれば、API ゲートウェイの機能を利用できます。

ポリシー

ポリシーは、直交する動作を API 全体またはそのリソースに適用するためのツールです。

ポリシーを作成して、受信/送信メッセージの強化、絞り込み、および制御ができるほか、たとえば、API へのトークンアクセスを適用したり、特定の IP アドレスをホワイトリストまたはブラックリストに登録したりすることでセキュリティレイヤを API 上に適用できます。

API ゲートウェイは、標準 (OOTB) ポリシーだけでなく、独自のカスタムポリシーを作成するためのエンジンを提供します。

Analytics

API Manager に API ゲートウェイを接続すると、​API Analytics​ を使用して、登録済み API の使用状況を監視できます。

API ゲートウェイでは、検出されたポリシー違反を含め、API 使用状況が報告されます。

ポイントカット

API ゲートウェイでは、ポリシーがその適用先のリソースを参照するようにポイントカットが使用されます。

API Manager でポリシーを適用した場合、そのポリシーはポイントカットを使用して、適用先の Mule アプリケーションのエンドポイントを決定します。

Mule アプリケーションコードで API 自動検出要素を宣言する必要がありますが、これと同様に、ポリシー内でポイントカットを宣言します。

Mule 4 では、ポイントカットはユーザに表示されず、API ゲートウェイと API Manager によって内部的に管理されるのみです。

ほとんどの場合、ポリシーを設定するときに、ポイントカットの粒度を選択できます。この設定は、ポリシーの ​[Method & Resource conditions (メソッドおよびリソースの条件)]​ の下にあります。

2 つの使用可能なオプションがあります。

  • Apply configurations to all API methods & resources (設定をすべての API メソッドおよびリソースに適用)​。

    api gateway capabilities mule4 40081

    選択した場合、API ポイントカットは、API のすべてのリソースとメソッドに一致します。つまり、適用されるポリシーは、(自動検出を介して API にリンクされている) HTTP リスナで受信された要求ごとに実行されます。

  • Apply configurations to specific methods & resources (設定を特定のメソッドおよびリソースに適用)​。

    api gateway capabilities mule4 2ed4e

    これは、API のリソースレベルのポイントカットを定義します。この例では、ポリシーは、要求メソッドが GET の場合にのみ API に適用されます。必要に応じて、リソースに一致する正規表現を定義し、粒度をさらに細かくすることができます。

API ゲートウェイ機能の有効化

API ゲートウェイの機能を利用するには、Mule Runtime と、特定のプレーン (US コントロールプレーン、EU コントロールプレーンなど) または Mule Private Cloud Edition で作成された組織との間で通信チャネルを確立する必要があります。

このように Mule Runtime を設定するには、Anypoint 組織のログイン情報を指定する必要があります。
実装に応じて、組織のログイン情報をランタイムに渡す方法がいくつかあります。 詳細は、​「Mule Runtime 4 の組織のログイン情報の設定」​または​「Mule Runtime 3 の組織のログイン情報の設定」​を参照してください。

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub