
ラボ 1: Order APIのStudioでの実装
概要
このラボでは、SOAP Webサービスへのリクエストを処理する Order API のスケルトン実装を作成します。 Anypoint Studio を使用して、Mule アプリケーションの作成を行います。Muleアプリケーションは各リソースのメソッドごとに、処理内容を記述したフローを1つ持つようにします。(例:GET orders)。さらに、APIKit を(Mule アプリケーションの一部として) 使用することで REST 形式のリクエストを処理したのち、それらを各フロー内にて扱えるメッセージへと変換します。

この演習は、複数のステップで構成されています:
-
Order API RAMLから Anypoint Studio で新しいMuleプロジェクトを作成します。
-
Anypoint Studio からMule API(Application)を実行します。
次に、スタジオのAPIコンソールを使用して、この新しいAPIをテストします。 このアプリケーションでは、テスト用のOrderを作成します。
ステップ 1: RAMLから新しいMuleプロジェクトを作成
このステップでは、Order API RAMLからAnypoint Studioで新しいMuleアプリケーションを作成します。 これがREST APIの実装になります。
-
まだAnypoint Studioを起動していない場合は、デスクトップ・アイコンから Anypoint Studio を起動し、作業するワークスペースを選択します(例:C:\workspaces\myworkspace)。
-
Anypoint Studioのメニューから、File > New > Mule Project を選択して、新規Muleプロジェクトを作成します。新しいアプリケーションの詳細を定義するウィンドウがポップアップします。
-
プロジェクトに order-api という名前を付けます。
-
Mule Server 4.4.0 EE (もしくは最新のバージョン) を選択します。
-
Import a Publish API セクションで、ExchangeからRAMLのAPI仕様をインポートします。
をクリックして、 from Exchange を選択してください。
-
クリックすると新しいウィンドウが表示されます。ユーザー名が表示されていない場合は、Anypoint Platformにログインする必要があります。 Add Account ボタンをクリックしてください。
-
これは前のモジュールで実施した操作と同じです。 ログオンすると、全てのAPIがリスト表示されます。 Order API (publisher が
ALC Workshop
のもの) を選択して Add を押してください。Order API を選択していることを確認してください Publisher にはワークショップのビジネス・グループ名が表示されているはずです。
-
Finish を押してください。
-
問題がないことを確認します。Scaffold flows from these API Specifications がチェックされていることを確認し、Finishを押してください。
-
APIkit が、API仕様に基づいた実装の雛形を含む新規Anypoint Studioプロジェクトを作成します。 生成された雛形には、インバウンドのHTTPリスナーだけでなく、 すべてのリソース、リクエスト/レスポンスのデータ型メタデータなどが含まれています。
ステップ 2: APIを実行
-
APIをテストするため、Studio内で実装したアプリケーションを実行してみましょう。 Package Explorer ビューで、アプリケーションを右クリックします。
-
Run As > Mule Application を選択してください。(前のラボで実施している場合は、スキップしてかまいません。)
Anypoint Studioは、このアプリケーションを組み込みMuleランタイムにデプロイしました。 別のMuleサーバー環境にデプロイする必要はありません。開発者は、共有開発環境や上位環境にデプロイできるようになるまで、アプリケーションをローカルで開発してテストすることができます。
-
アプリケーションが正常にデプロイされると、下の図のようなメッセージが表示されるはずです。表示が確認できたら、次に進みます。
-
APIkit Console を使用してアプリケーションをテストします。新しいタブにコンソールへのリンクが表示されます。リンクをクリックして、APIコンソールを表示します。
APIコンソールはブラウザでは次のように表示されます。
-
POST をクリックして、顧客情報の作成をテストします。 このページから、 Create an Order(POST) メソッドを使用して Orders resource(/orders) をテストすることができます。 リクエスト内容を確認するために、このページの Parameters, Headers, and Body タブを表示してください。
-
Accept フィールドに`application/json`と入力します。
-
リクエストの本文が、Body タブに表示されており、内容が設定されたペイロードであることを確認ください。 ここで Send ボタンを クリック します。
-
POST メソッドの Send リクエストを送信すると、以下のような「例(Example)」のレスポンスが表示されるはずです。 3つ目のパネルを下にスクロールすると見つかります。 これは、モッキングサービスからの応答ではないことに注意してください。 ローカルのMuleランタイム・サーバーにデプロイされた実行中のアプリケーションからの応答です。 ローカル環境で実行されているAPIをエンドツーエンドでテストしました。
-
Anypoint Studio に戻り、Console タブで赤いボタンを 押して 、Muleランタイムサーバー を停止します。
まとめ
このラボでは、以下のステップを完了しました:
RAML 仕様を使用して API を定義し、スケルトンプロジェクトを自動生成後、APIを実装しました。 このラボでは、APIkitを使用することで、短時間でAPI設計のREST API(RAMLとサポートするアーティファクト)をインポートすることができました。 その後、MuleSoftフローの開発とテストを可能にする方法を紹介しました。 更に、GET Orders info, POST (create) Order(s), GET Order by ID, PUT (update) Order by ID, そして DELETE Order by ID について記述されたRAML仕様を使用して、Order APIを実行しました。 また、RAMLを活用して、「デザイン・ファースト」のアプローチを体現し、これにより、エンドツーエンドの開発を大幅にスピードアップしました。そして最後に、ブラウザからAPIをテストして、実際のAPIクライアントをシミュレートしました。
RAML の詳細については、このチュートリアルを参照してください。
また、より進んだ内容については、 APIkit doc のドキュメントを参照してください。
おめでとうございます!ラボ1が完了しました。
ラボ 2 へ進んでください。