+
+

ラボ 1: Order APIのStudioでの実装

概要

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

module9 lab1 intro diagram1

この演習は、複数のステップで構成されています:

  1. Order API RAMLから Anypoint Studio で新しいMuleプロジェクトを作成します。

  2. Anypoint Studio からMule API(Application)を実行します。

次に、スタジオのAPIコンソールを使用して、この新しいAPIをテストします。 このアプリケーションでは、テスト用のOrderを作成します。

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

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

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

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

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

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

  5. Import a Publish API セクションで、ExchangeからRAMLのAPI仕様をインポートします。 module9 lab2 as plusbutton をクリックして、 from Exchange を選択してください。

    module9 lab1 new mule api project
  6. クリックすると新しいウィンドウが表示されます。ユーザー名が表示されていない場合は、Anypoint Platformにログインする必要があります。 Add Account ボタンをクリックしてください。

  7. これは前のモジュールで実施した操作と同じです。 ログオンすると、全てのAPIがリスト表示されます。 Order API (publisher が ALC Workshop のもの) を選択して Add を押してください。

    module9 lab1 as dc select proj

    Order API を選択していることを確認してください Publisher にはワークショップのビジネス・グループ名が表示されているはずです。

  8. Finish​ を押してください。

  9. 問題がないことを確認します。Scaffold flows from these API Specifications がチェックされていることを確認し、Finishを押してください。

    module9 lab1 check create
  10. APIkit が、API仕様に基づいた実装の雛形を含む新規Anypoint Studioプロジェクトを作成します。 生成された雛形には、インバウンドのHTTPリスナーだけでなく、 すべてのリソース、リクエスト/レスポンスのデータ型メタデータなどが含まれています。

    module9 lab1 as apis

ステップ 2: APIを実行

  1. APIをテストするため、Studio内で実装したアプリケーションを実行してみましょう。 Package Explorer ビューで、アプリケーションを右クリックします。

  2. Run As​ > Mule Application​ を選択してください。(前のラボで実施している場合は、スキップしてかまいません。)

    module9 lab1 as runas muleapp

    Anypoint Studioは、このアプリケーションを組み込みMuleランタイムにデプロイしました。 別のMuleサーバー環境にデプロイする必要はありません。開発者は、共有開発環境や上位環境にデプロイできるようになるまで、アプリケーションをローカルで開発してテストすることができます。

  3. アプリケーションが正常にデプロイされると、下の図のようなメッセージが表示されるはずです。表示が確認できたら、次に進みます。

    module9 lab1 as deployed
  4. APIkit Console を使用してアプリケーションをテストします。新しいタブにコンソールへのリンクが表示されます。リンクをクリックして、APIコンソールを表示します。

    module9 lab1 as apiconsolelink

    APIコンソールはブラウザでは次のように表示されます。

    module9 lab1 as apiconsole
  5. POST をクリックして、顧客情報の作成をテストします。 このページから、 Create an Order(POST) ​メソッドを使用して Orders resource(/orders) をテストすることができます。 リクエスト内容を確認するために、このページの Parameters, Headers, and Body タブを表示してください。

  6. Accept フィールドに`application/json`と入力します。

    module9 lab1 as apiconsole post
  7. リクエストの本文が、Body タブに表示されており、内容が設定されたペイロードであることを確認ください。 ここで Send ボタンを クリック します。

    module9 lab1 as apiconsole tryit
  8. POST メソッドの Send リクエストを送信すると、以下のような「例(Example)」のレスポンスが表示されるはずです。 3つ目のパネルを下にスクロールすると見つかります。 これは、モッキングサービスからの応答ではないことに注意してください。 ローカルのMuleランタイム・サーバーにデプロイされた実行中のアプリケーションからの応答です。 ローカル環境で実行されているAPIをエンドツーエンドでテストしました。

    module9 lab1 as postresponse
  9. Anypoint Studio に戻り、Console タブで赤いボタンを 押してMuleランタイムサーバー を停止します。

    module9 lab1 as stop application

まとめ

このラボでは、以下のステップを完了しました:

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 へ進んでください。

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