+
+

ラボ 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の使用状況を監視できるようになります。

module 5 lab 1 summary diagram

ステップ 1:API Managerに移動

  1. Anypoint Platform(https://anypoint.mulesoft.com) の API Manager アイコンをクリックして、APIの作成を開始します。 image::module_5_lab_1_click_apimanager.png[align="center"]

  2. 左上のナビゲーションボタンをクリックしてから、API Managerをクリックすることもできます。

    module 5 lab 1 ap navigationLeft
    module 5 lab 1 ap navigation apimanager
  3. 環境としてSANDBOXを選択します

height:300

ステップ 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を参照してください。

module 5 lab 1 apiconsole

プロキシを作成するには、ExchangeからAPI定義を取得します。

  1. この API の API プロキシゲートウェイを設定してみましょう。API Managerページに移動し、Add API をクリックし、そして Add new API を選択します.

    module 5 lab 1 ap apimanager configureEndpoint
  2. ランタイムとして、Mule Gateway を選択し、そして Deploy a proxy application をチェックします。

  3. . 下記情報でAPIを設定します:

    1. Proxy Type: Deploy a proxy application

    2. Target Type: CloudHub

    3. Runtime version: 4.4.0(もしくは利用可能な最新のバージョン)を選択します

    4. Proxy application name: <username>-proxy-omni-channel、この属性では、Proxy URLと Runtime Manager に登録されていているMule Application名が定義されます。

  4. Next ボタンをクリックします。

    module 5 lab 1 ap apimanager runtime
  5. Select API from Exchange を選択し、そして Omni Channel Experience API を選択します。

    module 5 lab 1 ap apimanager api select
  6. 画面下部の値が、以下のようになっているか確認してください。

    1. Asset type: ドロップダウンリストから `RAML/OAS`を選択します。

    2. API version: ドロップダウンリストから`1.0.0`を選択します。

    3. Asset version: ドロップダウンリストから`1.0.0`を選択します。

  7. Next ボタンをクリックします。

    module 5 lab 1 ap apimanager api settings
  8. 下記情報でAPIを設定します:

    1. API instance Label: <username>-proxy-omni-channel. このパラメータは、API Manager内でAPIを識別するために使われます。

    2. Implementation URI: http://workshop-omni-channel-mock-service-v40.cloudhub.io/api

    3. Base path: /

      module 5 lab 1 api manager confgured
  9. Next ボタンをクリックして、次の画面で設定を確認します:

    module5 lab1 api confguration
  10. もし設定内容が合っていれば、 Save & Deploy をクリックしてください。するとプロキシーのデプロイが開始されます。

    module 5 lab 1 proxy deploy

    アプリケーション名の横に青いポップアップが表示され、アプリケーションがデプロイ処理中であることが分かります。この新しいプロキシーアプリケーションをホストするためにCloudHubは0.1 vCoreのワーカーを割り当てています。緑色のアイコンが表示されたとき、この処理が完了したことが分かります。この間、どんな処理が行われているか見るためにログを見るなど、自由にあちらこちら見ていただいても構いません。

    プロキシのデプロイには数秒から数分かかることがあります。コーヒーを飲んだり、ドキュメントを見たりするには良い時間です。

    デプロイが完了したら、ページの上部にAPIのステータスが表示されます。下図のように、 の丸が横に表示されているはずです。これは、APIが正常にデプロイされ、現在管理されていることを示しています。

    module 5 lab 1 ap apimanager proxypanel

作成したプロキシは、Mule アプリケーション/プロジェクトです。プロキシをダウンロードしてAnypoint Studioにインポートするだけで、裏で何が行われているかを確認することができます。Mashery、Layer 7、apigeeなどの「pure-play」API管理ツールのブラックボックスプロキシとは異なり、Anypointプロキシは、ダウンロードして、残りのラボで学ぶMuleのすべての機能を使って拡張することができるMuleアプリケーションです。

必要に応じて、生成されたフローを追加ロジックで拡張することができます。

このプロキシを CloudHub 上ので動作する Runtime にデプロイしましたが、 このプロキシアプリケーションをオンプレミスの Runime または Runtime Fabric container にデプロイすることもできます。

ステップ 3: API プロキシのテスト

プロキシ API は CloudHub からアクセスできるようになりました。

module 5 lab 1 apimanager statuspanelstatus

API Statusでホストされているプロキシの正確なURLを取得することができます。:

  1. URLを右クリックしてコピーします。

  2. POSTMAN module5 lab1 postman icon を開きます。

  3. コピーしたものを「Enter request URL」というフィールドに貼り付けますが、まだエンターキーを押さないでください。

  4. プロキシを使って製品情報を取得するために "/products/search" を追加します。

    URLは次のようになるはずです: http://{your_domain_name}/products/search

    module5 lab1 postman url config
  5. Header タブに移動します。

  6. 以下の値を追加します :

    key value

    Content-type

    application/json

    Accept

    application/json

    module5 lab1 postman header conf
  7. ここで Send ボタンをクリックと、以下のように表示されるはずです:

    module 5 lab 1 browser product search response

他のRESTクライアントを使ってAPIをテストすることもできます。リクエストを行った後にヘッダを設定することが重要です。

まとめ

このラボでは、以下の手順を実施しました:

  • Anypoint API Managerの概要

  • APIプロキシの設定

  • Postmanを使ったAPIプロキシのテスト

既存のAPIにプロキシを設定してCloudHubベースのAPI Gatewayにデプロイすることがいかに簡単かを確認しました。これにより、既存のAPIを環境全体で管理するための 低フリクション なアプローチを提供します。オンプレミスでもクラウドでも利用できる ハイブリッド API Gatewayサービスを活用することができます。このラボでは、API GatewayをCloudHubにデプロイすることで、インフラストラクチャを管理・保守することなく デプロイを大幅にスピードアップ できることを確認しました。API ゲートウェイのデプロイと API のプロキシの詳細については、以下のドキュメントを参照してください。

APIゲートウェイのデプロイとAPIのプロキシの詳細については、次のドキュメントを参照してください:

module 5 lab 1 summary diagram

おめでとうございます!ラボ1が完了しました。

ラボ 2 に進んでください。

Submit your feedback!
Share your thoughts to help us build the best workshop experience for you!
Take our latest survey!