+
+

ラボ 1: StudioでOmni Channel APIを実装

概要

この最初のラボでは、Anypoint Studioを使用してMuleアプリケーションを作成し、各リソースの各メソッド(GETなど)ごとに1つのフローを作成します。 またAPIKitを(Muleアプリケーションの一部として)使用して各RESTリクエストを処理し、それらのメッセージを変換して各フローで処理します。

実装はいくつかのステップで構成されます。

  1. Omni Channel APIのRAMLファイルから、Anypoint Studioで新規のMuleプロジェクトを作成

  2. Anypoint StudioでMuleアプリケーションを実行

後ほどAPIコンソールを使用してこの新しいAPIをテストします。

ステップ 1: RAMLから新規Muleプロジェクトを作成

このステップでは、Omni Channel APIのRAML定義から、Anypoint Studioで新しいMuleアプリケーションを作成します。 これがREST APIの実装になります。

  1. デスクトップのアイコンから、Anypoint Studioを起動して下さい。

    module2 lab1 step1 1 studio logo
  2. Anypoint Studioを初めて開くと、プロジェクトを保存するワークスペースの選択を求められますので、デフォルトで用意されているものを選択してください。

    module2 lab1 choose workspace
  3. Anypoint Studio のウェルカム画面が表示されます。

    module2 lab1 step1 2 welcome screen
  4. Studioの詳細を知りたい場合は、一番下までスクロールして、 Continue to Studio を押してください。

  5. ワークスペース・ランチャーで、デフォルトのワークスペース・ディレクトリの場所を使用します。

  6. Anypoint Studioのメニューから、File > New > Mule Projec(ファイル>新規> Muleプロジェクト)を選択して、新しいMuleプロジェクトを作成します。 New Mule Project ウィンドウが表示され、新しいアプリケーションの詳細を定義します。

    module2 lab1 file new
  7. プロジェクト名に omni-channel-api-v1 と入力します。

  8. ランタイム・バージョンは Mule Server 4.4.0 EE (もしくは最新バージョン)を選択して下さい。

  9. ここでは、Import a Published API で、ExchangeからRAML Specをインポートします。 module2 lab1 plus buttonをクリックして、from Exchange を選択します。

    module2 lab1 new mule api project
  10. クリックすると、新しいウィンドウが表示されますので、Anypoint Platformにログインする必要があります。Add Account ボタンをクリックしてください。

    module2 lab1 add account
  11. 新しいログインウィンドウが表示されますので、認証情報を入力してください。

    module2 lab1 platform login
  12. 検索欄に Omni Channel と入力してください。

  13. モジュール1で作成した <username> Omni Channel Experience API を選択し、Add をクリックします。

    モジュール1を実施していない場合は、既に用意されている Omni Channel Experience API をインポートすることができます。 その場合は PublisherMulesoft のものとなります。

    module2 lab1 step1 6 import RAML
  14. Finish をクリックしてください。

  15. Scaffold flows from these API Specifications にチェックが入っていることを確認し、すべてに問題がないことを確認します。

    module2 lab1 check scaffold
  16. 最後に Finish をクリックすると、APIを実装するためのスケルトン・プロジェクトが作成されます。

    module2 lab1 step1 7 studio overview

    これでプロジェクト作成は完了です! 自動作成されたフローを確認してみましょう。

  17. ダイアグラムの一番上に、 api-main および api-console というフローがあり、RAMLに定義されたメソッド毎のフローがその後に続いています。

    下にあるフローは、RAMLファイルで定義されたAPI設計に応じて自動生成されたものです。一般的に、 get:\resourcepost:\resourceput:\resource のようにリソースおよびメソッドごとのフローが生成されています。 フローの名前は、APIKitルーターによるリクエストをフローにルーティングするためにとても重要です。 ここでは変更しないでください。

    APIkitが、RAMLに定義されたメソッドのレスポンスにExampleデータを検出した場合、 フローに Dataweave Transform Message が挿入され、Exampleデータの参照による静的なレスポンスを返すよう設定されます。

    自動生成された Dataweave Transform Message から返される静的なレスポンスによって、すぐにスタブとしてAPIをテストすることができます。当然ながら、これらのフローを拡張して、より高度なモックサービスを提供するだけでなく、次のラボで見るように、完全なAPI実装へと進化させることができます。

    module2 lab1 step1 8 apikit main

    api-main
    これはメイン・フローです。HTTPサービスを公開し、 APIKit ルーターを使用してリクエストを処理します。

    HTTPリクエストはMuleメッセージに変換され、APIKitルーターによってリクエストされたフローにリダイレクトされます。

    HTTPリスナーを選択すると、HTTP構成を確認できます。プロトコル、ホスト、ポート番号の設定があり、 http://localhost:8081/api でリクエストを待機していることがわかります。

    メイン・フローの中には、 エラー・ハンドリング のブロックも含まれています。ここには、複数の On Error Propagate の定義が自動生成され、 METHOD_NOT_ALLOWEDBAD_REQUEST といった一般的なエラーをハンドリングできるようになっています。

    module2 lab1 step1 9 apikit put user shopping cart

    put:\users\user{user_id}\shopping_cart
    このフローは、ユーザーIDに基づいてアイテムをユーザーのショッピング・カートにPUTします。 この PUT 操作はレスポンスを返さないため、 Dataweave Transform Message プロセッサは自動的に Logger に置き換えられています。

    module2 lab1 step1 10 apikit get order by id

    get:\orders\order\{order_id}
    このフローは、オーダーIDに基づいてオーダー情報を取得します。

    module2 lab1 step1 11 apikit get product by id

    get:\products\product\{product_id}
    このフローは、製品IDに基づいて製品情報を取得します。

    module2 lab1 step1 12 apikit get order search

    get:\orders\search
    このフローは、検索条件に基づいてオーダーのリストを返します。

    module2 lab1 step1 13 apikit get product search

    get:\products\search
    このフローは、検索条件に基づいて製品のリストを返します。

    module2 lab1 step1 14 apikit get user shopping cart

    get:\users\user\{user_id}\shopping_cart
    このフローは、ユーザーIDに基づいてユーザーのショッピング・カートの全てのアイテムを返します。

    module2 lab1 step1 15 apikit post shopping cart confirm

    post:\users\user\{user_id}\shopping_cart\confirmation
    このフローは、ユーザーのショッピング・カートにあるアイテムの購入を確認します。

ステップ 2: 生成されたAPIプロジェクトのテスト

  1. APIをテストするために、まず最初にAPIをStudioで実行します。アプリケーションを右クリックして下さい。

  2. Run As > Mule Application を選択します。

    module2 lab1 step2 1 studio run as
  3. アプリケーションが開始され、コンソールにMuleランタイムのログが表示されます。

    module2 lab1 step2 2 studio console deployed

    Anypoint Studioは、このアプリケーションを組み込みのMuleランタイムにデプロイしました。 別のMuleサーバー環境にデプロイする必要はありません。 開発者は、共有の開発環境やQA環境に展開する準備ができるまで、アプリケーションをローカルで開発およびテストできます。 . API Consolesを使用してアプリケーションをテストすることができます。APIKit Consoles タブにある Open console ボタンをクリックして下さい。

    module2 lab1 step2 3 apikit console base url
  4. ブラウザのウィンドウが開き、 http://localhost:8081/console/ を表示します。

  5. 左側にある /products/search リソースをクリックして開き、 GET を選択して下さい。

  6. 右下にある SEND ボタンをクリックして、リクエストを送信します。

    module2 lab1 step2 4 browser apikit console tryit
  7. Show optional parameters をチェックし、以下のように入力してから SEND をクリックして下さい。

    module2 lab1 step2 5 apikit console get request

    3番目のパネルを下にスクロールすると、インポートしたRAMLで定義されたモックアップデータが表示されます。

    module2 lab1 step2 6 apikit console response

    Muleランタイムサーバにデプロイされたライブアプリケーションですが、RAMLの情報を利用して「モッキング」エクスペリエンスを提供しています。

    次のラボの準備のために、アプリケーションを停止しましょう。

  8. コンソールタブの、赤い四角いボタンを押して、Muleランタイムサーバーを停止します。

    module2 lab1 step2 7 studio stop

まとめ

このラボでは、以下を実施しました。

  • API定義をAnypoint Studioに直接ダウンロードし、依存関係として追加

  • RAML仕様を使って、APIの初期実装スケルトンを生成

  • 自動生成されたスケルトン・プロジェクトからAPIを実装

このラボでは、開発者がAPIkitによって設計したREST API(RAMLおよびサポート要素)をすばやくインポートし、生成されたMuleSoftフローでAPIロジックを迅速に実装できるようにする方法を示します。 APIkitは、MuleSoftフローに合わせたインタラクティブなコンソールもデプロイします。 このラボでは、開発者がRAMLのAPI仕様からオンプレミスのインタラクティブなAPIをデプロイまでをカバーしています。

API実装は実際のMuleSoftアプリケーションであり、エンドツーエンドでAPIをテストできるようになります。インテグレーションのアプリケーション構築とAPI化には追加の知識は不要で、MuleSoft開発者がこの両方で作業することを容易にします。

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

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

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