
ラボ 1:Omni Channel APIのプロキシ
概要
API管理は、3つのレイヤーすべてのAPIにガバナンスフレームワークを提供するため、API主導のアーキテクチャに不可欠です。API管理を行うためには、新規および既存のAPIをAPI Gateway上でホストできる必要があり、このAPI Gatewayはポリシーの適用や分析のためのデータ収集に使用されます。
MuleSoftは、MuleSoftが実装したAPIに直接ガバナンスを適用することも、これから作成するAPIやその他の外部のプロキシゲートウェイを介して既存APIに対してガバナンスを適用することもできます。
ここで使用するAPIは、Omni Channel APIの2つのバージョンです。このラボ1では、すでにデプロイされているモック実装へのプロキシゲートウェイを作成します。
オプションのラボ 4 では、プロキシを使用せずにMuleSoftサービスを直接制御する方法を示し、オプションのラボ 5 では、Design Center で開発され、Exchange に公開されていない既存のサービスをプロキシで制御する方法を示します。
今回のラボでは、Mythical社 のOmni Channel APIのプロキシとして動作するAPIを定義します。このプロキシは、Muleランタイムによって動作するAnypoint PlatformのAPI Gatewayにデプロイされます。Muleランタイムは、オンプレミス、プライベートクラウド、またはAnypoint PlatformがホストするCloudHubサービスで実行できます。このシナリオでは、後者のCloudHubを使用します。
クライアントはAPIゲートウェイを介してAPIにアクセスし、APIゲートウェイはリクエストを実際のOmni Channel APIモック実装に転送します。APIゲートウェイにプロキシをデプロイすることで、Anypoint Platformによりアクセスを管理、制御、およびAPIの使用状況を監視できるようになります。

ステップ 1:API Managerに移動
-
Anypoint Platform(https://anypoint.mulesoft.com) の API Manager アイコンをクリックして、APIの作成を開始します。 image::module_5_lab_1_click_apimanager.png[align="center"]
-
左上のナビゲーションボタンをクリックしてから、API Managerをクリックすることもできます。
-
環境としてSANDBOXを選択します

ステップ 2:APIプロキシを構成
このラボでは、Mythical社 のOmni Channel APIのモック実装に対してプロキシとしてAPIを設定します。 このAPIは、ベースURL http://workshop-omni-channel-mock-service-v40.cloudhub.io/api からアクセスできるHTTP Restful APIとして公開されています。
HTTP GETが発行された際に商品情報を返すこのAPIのproductsリソースを見てみましょう。
このAPIの全てのリソースを確認するには、ExchangeのAPI定義とSummaryを参照してください。

プロキシを作成するには、ExchangeからAPI定義を取得します。
-
この API の API プロキシゲートウェイを設定してみましょう。API Managerページに移動し、Add API をクリックし、そして Add new API を選択します.
-
ランタイムとして、Mule Gateway を選択し、そして Deploy a proxy application をチェックします。
-
. 下記情報でAPIを設定します:
-
Proxy Type: Deploy a proxy application
-
Target Type: CloudHub
-
Runtime version:
4.4.0
(もしくは利用可能な最新のバージョン)を選択します -
Proxy application name:
<username>-proxy-omni-channel
、この属性では、Proxy URLと Runtime Manager に登録されていているMule Application名が定義されます。
-
-
Next ボタンをクリックします。
-
Select API from Exchange を選択し、そして Omni Channel Experience API を選択します。
-
画面下部の値が、以下のようになっているか確認してください。
-
Asset type: ドロップダウンリストから `RAML/OAS`を選択します。
-
API version: ドロップダウンリストから`1.0.0`を選択します。
-
Asset version: ドロップダウンリストから`1.0.0`を選択します。
-
-
Next ボタンをクリックします。
-
下記情報でAPIを設定します:
-
API instance Label:
<username>-proxy-omni-channel
. このパラメータは、API Manager内でAPIを識別するために使われます。 -
Implementation URI:
http://workshop-omni-channel-mock-service-v40.cloudhub.io/api
-
Base path:
/
-
-
Next ボタンをクリックして、次の画面で設定を確認します:
-
もし設定内容が合っていれば、 Save & Deploy をクリックしてください。するとプロキシーのデプロイが開始されます。
アプリケーション名の横に青いポップアップが表示され、アプリケーションがデプロイ処理中であることが分かります。この新しいプロキシーアプリケーションをホストするためにCloudHubは0.1 vCoreのワーカーを割り当てています。緑色のアイコンが表示されたとき、この処理が完了したことが分かります。この間、どんな処理が行われているか見るためにログを見るなど、自由にあちらこちら見ていただいても構いません。
プロキシのデプロイには数秒から数分かかることがあります。コーヒーを飲んだり、ドキュメントを見たりするには良い時間です。
デプロイが完了したら、ページの上部にAPIのステータスが表示されます。下図のように、緑 の丸が横に表示されているはずです。これは、APIが正常にデプロイされ、現在管理されていることを示しています。
作成したプロキシは、Mule アプリケーション/プロジェクトです。プロキシをダウンロードしてAnypoint Studioにインポートするだけで、裏で何が行われているかを確認することができます。Mashery、Layer 7、apigeeなどの「pure-play」API管理ツールのブラックボックスプロキシとは異なり、Anypointプロキシは、ダウンロードして、残りのラボで学ぶMuleのすべての機能を使って拡張することができるMuleアプリケーションです。 |
必要に応じて、生成されたフローを追加ロジックで拡張することができます。 |
このプロキシを CloudHub 上ので動作する Runtime にデプロイしましたが、 このプロキシアプリケーションをオンプレミスの Runime または Runtime Fabric container にデプロイすることもできます。 |
ステップ 3: API プロキシのテスト
プロキシ API は CloudHub からアクセスできるようになりました。

API Statusでホストされているプロキシの正確なURLを取得することができます。:
-
URLを右クリックしてコピーします。
-
POSTMAN
を開きます。
-
コピーしたものを「Enter request URL」というフィールドに貼り付けますが、まだエンターキーを押さないでください。
-
プロキシを使って製品情報を取得するために "/products/search" を追加します。
URLは次のようになるはずです: http://{your_domain_name}/products/search
-
Header タブに移動します。
-
以下の値を追加します :
key value Content-type
application/json
Accept
application/json
-
ここで Send ボタンをクリックと、以下のように表示されるはずです:
他のRESTクライアントを使ってAPIをテストすることもできます。リクエストを行った後にヘッダを設定することが重要です。 |
まとめ
このラボでは、以下の手順を実施しました:
-
Anypoint API Managerの概要
-
APIプロキシの設定
-
Postmanを使ったAPIプロキシのテスト
既存のAPIにプロキシを設定してCloudHubベースのAPI Gatewayにデプロイすることがいかに簡単かを確認しました。これにより、既存のAPIを環境全体で管理するための 低フリクション なアプローチを提供します。オンプレミスでもクラウドでも利用できる ハイブリッド API Gatewayサービスを活用することができます。このラボでは、API GatewayをCloudHubにデプロイすることで、インフラストラクチャを管理・保守することなく デプロイを大幅にスピードアップ できることを確認しました。API ゲートウェイのデプロイと API のプロキシの詳細については、以下のドキュメントを参照してください。
APIゲートウェイのデプロイとAPIのプロキシの詳細については、次のドキュメントを参照してください:

おめでとうございます!ラボ1が完了しました。
ラボ 2 に進んでください。