
ラボ 5: HTTP プロキシを使用したレガシーサービスのプロキシ (オプション)
概要
API管理 は、3つのレイヤーすべてでAPIにガバナンスフレームワークを提供するため、API主導のアーキテクチャでは不可欠です。ラボ1では、MuleSoftがExchangeで公開されているAPIをAPI Gateway上でプロキシする方法を、ラボ4ではMuleSoftが実装したAPIを直接管理する方法を説明しました。
既存のサービスやレガシーサービスがある場合はどうすればいいのでしょうか。MuleSoftはこれらのサービスも管理することができます。これらの既存のサービスはHTTPプロキシを介して管理します。REST-JSONサービスやSOAP Webサービスをこの方法で管理することも可能です。
このラボで使用するAPIは、すでにデプロイされているモック実装を利用します。
クライアントは API ゲートウェイを介して API にアクセスし、実際のOmni Channel API モック実装にリクエストを転送します。APIゲートウェイにプロキシをデプロイすることで、Anypoint Platformはレガシーサービスの管理、アクセス制御、および使用状況の監視を行うことができます。
ステップ 1:API ManagerでAPI-HTTPプロキシを作成
-
API Manager に移動します。
-
Select Add API and select Add New API
-
Mule Gateway を選択し、Next ボタンをクリックします。
-
"Select API From Exchange"が規定値として選択されているはずです。では"Omni Channel Experience API"を検索してみましょう。
次のステップに続きます。
ステップ 2: API ManagerでHTTP-APIプロキシを設定
このラボでは、Mythical社 の Omni Channel API のモック実装に API-HTTP プロキシを設定します。 このAPIは、ベースURL http://workshop-omni-channel-mock-service-v40.cloudhub.io/api からアクセスできるHTTP Restful APIとして公開されています。
ここでは、HTTP GETが発行された際に商品情報を返すこのAPIのproductsリソースを見てみましょう。
このAPIの全てのリソースを見るには、URL http://workshop-omni-channel-mock-service-v40.cloudhub.io/console/ を使用してAPI Consoleを見ることができます。
-
以下の情報でAPIを設定します:
-
Managing type:
Endpoint with proxy
を選択します。 -
Proxy deployment target:
CloudHub
-
Mule Version:
Mule 4
-
Implementation URI:
http://workshop-omni-channel-mock-service-v40.cloudhub.io/api
-
Path:
/
-
-
Advanced options をクリックします。
-
API instance label:
<username>-http-proxy-omni-channel
このパラメータは、API ManagerでAPIを識別するために使用する予定です。CloudHubにデプロイしているので、ポートを指定する必要はありません。デフォルトではhttpかhttpsかに応じて80番ポートか443番ポートになっています。
-
-
Save ボタンをクリックします。
Save ボタンをクリックすると、プロキシをデプロイするためのデプロイ設定セクションが表示されます。
-
以下の情報で構成します:
-
Runtime version:
4.3.0
を選択します。 -
Proxy application name:
<username>-mythical-omni-channel-api-http-proxy
このプロパティは、Runtime Manager でプロキシ URL と Mule アプリケーションの名前を定義します。
-
-
Deploy ボタンを押します。
-
Click Here をクリックしてログデータを確認し、進捗状況を確認します。
-
新しいブラウザタブが開き、このアプリケーションのCloudHubログが表示されます。
もし、ログに誘導されていない場合は、アプリケーション名をクリックしてからログをクリックしてください。 アプリケーション名の横に青い丸が表示され、アプリケーションがデプロイされていることを示しています。CloudHubは、新しいプロキシアプリケーションをホストするために0.1 vCoreのワーカーを割り当てています。青色 のアイコンが表示されれば完了です。それまでの間は、自由に見て回ってください(ログを見て何が起こっているのかを確認してください)。
プロキシのデプロイには数秒から数分かかることがあります。 コーヒーを飲んだり、ドキュメントを見たりするには良い時間です。 Your application is started と表示されたら、次に進んでください。
-
APIを設定していた前のブラウザタブに戻ってください。 "Deploying" ポップアップがまだ開いている場合は、ステータスバーに緑色の Deploy Successful が表示されているはずです。.
-
Close ボタンをクリックして下さい。
-
デプロイが完了すると、ページの上部にAPIのステータスが表示されます。下図のように、緑色 のボールが横に表示されているはずです。これは、APIが正常にデプロイされ、現在管理されていることを示しています(ブラウザを更新する必要があるかもしれません)。
先ほど作成したプロキシは Mule アプリケーション/プロジェクトです。プロキシをダウンロードして、Anypoint Studioにインポートしてください。Mashery、Layer 7、apigeeなどの「ピュアプレイ」API管理ツールのブラックボックスプロキシとは異なり、AnypointプロキシはMuleアプリケーションであり、ダウンロードして、残りのラボで学ぶMuleのすべての機能を使って拡張することができます。 |
必要に応じて、生成されたフローを追加ロジックで拡張することができます。 |
このプロキシを CloudHub 上の API Gateway にデプロイしましたが、このプロキシアプリケーションをオンプレミスの API Gateway にデプロイすることもできます。 |
ステップ 3:API-HTTPプロキシをテスト
CloudHubからプロキシAPIにアクセスできるようになりました。

ホストされているプロキシの正確なURLは、APIステータスで取得できます:
-
URLを右クリックしてコピーします。
-
ブラウザで別のタブを開きます。
-
コピーしたものを新しいタブに貼り付けますが、まだEnterキーは押しません。
-
“/products/search” を追加して、プロキシを使用して製品情報を取得します。
次のようなURLが必要です: http://{your_domain_name}/products/search
-
Enterキーを押すと、次のような応答が表示されます:
-
PostManやARC(Advanced Rest Client)などのRESTクライアントを使用してAPIをテストすることもできます。
まとめ
のラボでは、次の手順を完了しました:
-
ExchangeでAPI-HTTPプロキシを作成
-
API ManagerでAPI-HTTPプロキシを設定
-
API-HTTPプロキシをテスト
既存のAPIをプロキシしてCloudHubベースのAPIゲートウェイにデプロイするのがいかに簡単かを確認しました。これにより、環境全体で既存のAPIを管理するための 柔軟性 があるアプローチが提供されます。オンプレミスでもクラウドでも利用できる ハイブリッド API Gatewayサービスを活用することができます。このラボでは、インフラストラクチャを管理・保守することなく、API GatewayをCloudHubにデプロイすることで、デプロイ を大幅に スピードアップ できることを確認しました。
APIゲートウェイのデプロイとAPIのプロキシの詳細については、次のドキュメントを参照してください:

おめでとうございます! モジュール5の全てのラボが完了しました。
モジュール 6に進んで下さい。