+
+

ラボ 1: Exchange上で Order Fulfillment API を確認並びに再利用

概要

このラボでは、Anypoint Exchange Design Centerに保存されているOrder Fulfillment API RAML定義から、Anypoint Studioで新しいMuleアプリケーションを作成します。このラボはREST APIの実装になります。

ステップ 1: 新しい Mule プロジェクトを作成し、RAML 定義をインポート

API 定義を使用して、Order Fulfillment API の実装を作成します。 これを行うには、Design Center から RAML 仕様をインポートする必要があります。

  1. Anypoint Studioを開いていない場合は、デスクトップ・アイコンから Anypoint Studio を起動し、作業しているワークスペースを選択します(例:C:\workspaces\myworkspace)。

  2. Anypoint Studioのメニューから、[File] > [New] > [Mule Project]を選択して、新規Muleプロジェクトを作成します。新しいアプリケーションの詳細を定義するウィンドウがポップアップします。

  3. プロジェクトに api-order-fulfillment という名前を付けます。

  4. Mule Server 4.4.0 EE (もしくは最新のバージョン) を選択します。

  5. API Implementation の下にある Import a published API 内の, Plus ボタンをクリックして、 from Exchange を選択します。

    module10 lab1 new mule api project
  6. クリックすると、Add Dependencies to the Project ウィンドウが表示されます。ログインを求められる場合は、Anypoint Platformアカウントを使用します。

  7. これは、前回のモジュールで行ったのと同じです。Type a search term to look up in Exchange という凡例が書かれた検索ボックスが表示されるので、Order Fulfillment API と入力し、Enter を押してExchange内で検索を行います。

  8. リストから Order Fulfillment API を選択し、Add ボタンをクリックします。

  9. 最後に Finish ボタンをクリックします。

    module10 lab1 vcs choose project
  10. Exchangeからインポートされた新しいAPIがリストに表示されます。

    module10 lab1 imported api

    Scaffold flows from these API specifications にチェックが入っていることを確認してください。デフォルトで選択されています。

  11. Finish を押します。これにより、APIを実装するスケルトン・プロジェクトが作成されます。

  12. インポートにより、以下のようにAPIメタデータに基づいて事前に設定された実装を持つ新しいAnypoint Studioアプリケーションが作成されます。

    module10 lab1 application

    自動生成されたものを確認してみましょう。

    ダイアグラムの一番上には、order_fulfillment-api-main というフローと、プロセス API のプレースホルダフロー post:/order_fulfillment:application/json:order-fulfillment-api-config が表示されています。このプロセスAPIは、ExchangeのRAMLで定義されているPOSTメソッドを反映したものです。(API-product-console フローや global exception handlingブロックもあります)。

    通常、get:/resource、post:/resource、put:/resource などのようなフローがあります。フローの名前は、APIkit ルーターがリクエストを適切なフローにルーティングできるようにするために非常に重要です。

    APIkit が RAML のメソッドのレスポンスでサンプル データを検出すると、Set Payload Transformer がフローに挿入され、サンプル データ参照で指定された静的レスポンスが返されます。

    自動生成された Set Payload Transformer により返される静的応答を使用すると、生成後すぐにスタブをテストできます。これらのフローは、より高度なモックサービスを提供したり、完全なAPI実装に拡張することができます。

    | module10 lab1 api kit

    api-product-main

    これがメインのフローです。HTTP サービスを公開し、APIKit ルーターを使ってリクエストを処理します。

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

    HTTP の設定を見てみると、 http://localhost:8081/api のリクエストをリッスンしていることがわかります。

    | module10 lab1 post order fulfillment

    post:/order_fulfillment:application/json:order-fulfillment-api-config

    次のステップで実装するスケルトンフローです。このスケルトンフロー、またはスタブを素早くレイアウトすることで、開発者も利用者も、このフローをMuleアプリケーションとして実行しているかどうかを素早くテストすることができます。 自動生成された静的なレスポンスが返されるので、生成後すぐにスタブをテストできます。これらのフローは、より高度なモックサービスを提供したり、完全なAPI実装に拡張することができます。 APIアセットの拡張は、多くのMuleSoftの顧客が採用している典型的なアジャイル開発プラクティスの副産物です。

ステップ2: APIの実行

  1. APIをテストするために、まずはStudio内で実行してみましょう。Package Explorer ビューで api-order-fulfillment を右クリックします。

  2. Run As > Mule Application を選択します (前回のラボで実行している場合は省略しても構いません)。

    module10 lab1 run application
  3. アプリケーションが実行を開始し、コンソールにMule Runtimeログが表示されます。アプリケーションのデプロイが完了したことがコンソールに表示されるまで待ちます。

    module10 lab1 deployed
  4. アプリケーションがデプロイされると、Anypoint StudioがAPIコンソールへのリンクを持つタブを開き、アプリケーションをテストすることができます(コンソールを最大化するには、APIKitコンソールタブをダブルクリックします)。

    module10 lab1 console link
  5. クリックすると、カスタムブラウザ上に新しいページが開きます。

    module10 lab1 console
  6. 左側の POST タブをクリックして、order_fulfillment メソッドをテストします。

    module10 lab1 console post

    Accept ヘッダーに application/json が入力されていることを確認してください。

  7. Body タブに移動して、リクエストボディを確認します。

    module10 lab1 post body
  8. SEND ボタンをクリックします。

  9. customer creationからのレスポンスのサンプルが表示されているはずです。

    module10 lab1 console response
  10. コンソールタブに移動し、赤いボタンを押してMuleランタイムサーバーを停止します。

次のラボでは、データベースに接続するためにフローを更新します。

まとめ

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

  • RAML定義を直接Anypoint Studioにインポート

  • APIを実装するためのスケルトンプロジェクトを自動生成

  • スケルトンを実行して、それが正しいかどうかを確認

更に進む:

  • 詳細については、 APIkit を参照下さい。

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

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

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