ステップ 3.API の開発

API 仕様が作成できたので、次はこれを使用して Mule アプリケーションを作成します。

Anypoint Platform では、​Mule Runtime Engine (Mule)​ のインスタンスにデプロイするアプリケーションに API をパッケージします。 Mule は、Mule アプリケーションを実行する軽量のインテグレーションエンジンです。Mule のインスタンスは、Studio と、Mule アプリケーションおよび API をデプロイする環境に埋め込まれます。 これらの環境は対象と呼ばれます。対象の 1 つは Studio に埋め込まれる Mule で、開発とテストに使用します。もう 1 つの対象は ​CloudHub​ で、MuleSoft によって管理されるクラウドベースの環境です。

最初に、アプリケーションを Studio の Mule にデプロイし、次に CloudHub の Mule にデプロイします。

プロジェクトが存在しない Studio

  1. Package Explorer では、各プロジェクトで作成したファイルを操作できます。

  2. キャンバスでは、プロジェクトの要素をドラッグして接続することで、フローを作成します。

  3. [Mule Palette (Mule パレット)] では、コネクタやモジュールなどの標準アセットやカスタムアセットに簡単にアクセスできます。

  4. 設定セクションにあるタブは、設定ダイアログや Mule デバッガーなどの開発者用ダイアログへのアクセスに使用します。

ステップ 3.1: Anypoint Platform のログイン情報を Studio に追加する

Anypoint Platform のログイン情報は、Studio に 1 回だけ追加すれば、以降に作成するすべてのプロジェクトで使用できます。

  1. Studio を開き、​[Anypoint Studio] > [Settings (設定)]​ を選択します。

  2. [Preferences (プリファレンス)] ウィンドウで、​[Anypoint Studio]​ をクリックし、​[Authentication (認証)]​ をクリックします。

  3. [Add (追加)]​ をクリックし、Anypoint Platform のユーザー名とパスワードを入力します。

  4. [Sign In (サインイン)]​ をクリックします。

  5. 必要に応じて、​[Secure Storage - Password Hint Needed (セキュアストレージ - パスワードヒントが必要)]​ ダイアログで ​[Yes (はい)]​ をクリックします。

  6. [Apply and Close (適用して閉じる)]​ をクリックします。

このログイン情報は、Studio の多くの操作で自動的に使用されます。

ステップ 3.2: インポートした API 仕様で新しい Studio プロジェクトを作成する

このステップではプロジェクトを作成します。

  1. Studio で、​[File (ファイル)] > [New (新規)] > [Mule Project (Mule プロジェクト)]​ を選択します。

    新しいプロジェクトのダイアログ

  2. ダイアログボックスで、次の値を設定します。

    • Project Name (プロジェクト名)​: hello-world-app

    • Runtime​: 選択肢があれば、最新バージョンの Mule を選択します。これが Studio でテスト用にホストされる Mule Runtime Engine となります。

    • [Import a published API (パブリッシュ済みの API をインポート)]​ タブを選択します。

      1. 緑のプラス記号をクリックして ​[From Exchange (Exchange から)]​ を選択します。

      2. 必要であれば組織にログインします。

      3. 検索ボックスに ​hello-world​ と入力します。

      4. hello-world-api​ をクリックして選択します。

      5. [Add (追加)]​ をクリックして ​[Selected modules (選択したモジュール)]​ リストに移動し、​[Finish (完了)]​ をクリックします。

  3. [Scaffold flows from these API specifications (これらの API 仕様からフローをスキャフォールディングする)]​ チェックボックスがオンであることを確認し、​[Finish (完了)]​ をクリックします。

    この設定では、Studio はデフォルトのエラー処理や他の便利な機能をプロジェクトに追加します。

Studio によって ​hello-world.xml​ という XML ファイルが作成され、キャンバスの ​[Message Flow (メッセージフロー)]​ ビューで開かれ、API インターフェースで必要な基本要素が表示されます。

スキャフォールディングありで API 仕様をインポートした後の Studio のビュー

キャンバスを下にスクロールして、アプリケーションに追加されたスキャフォールディングを確認します。

  • 要求を受信できる HTTP リスナー

  • メッセージをルーティングする APIkit ルーター

  • 各種エラー条件用のエラーハンドラー

  • hello-world-app-console​ というコンソール (このプロジェクトでは使用しません)

  • 設定の大半を行うエンドポイント ​/greeting​ への GET 要求

キャンバスには 3 つの異なるビューがあります。

1 つのキャンバスと 3 つのビューすべてへのリンク

  • [Message Flow (メッセージフロー)]​ は、モジュール、コネクタなどのアセットをキャンバスにドラッグし、それらのリレーションを作成するために使用します。

  • [Global Elements (グローバル要素)]​ は、複数のプロジェクトで使用するグローバル要素を指定するために使用します。

  • [Configuration XML (設定 XML)]​ は、プロジェクトの XML を直接編集するために使用します。

キャンバスの ​Listener​ コンポーネントで設定されている値を確認します。

  1. [Listener]​ をダブルクリックして、全体的な設定値を表示します。

  2. 設定名の横にある編集アイコン ​ノートの上の鉛筆​をクリックして、ホストが ​0.0.0.0​ でポートが ​8081​ であることを確認します。

  3. [Test Connection (接続をテスト)]​ をクリックし、接続テストが成功したと報告されたら ​[OK]​ をクリックします。

  4. [OK]​ をクリックして、設定を閉じます。

    [Global Configuration Elements (グローバル設定要素)]​ タブに戻ります。

  5. [Message Flow (メッセージフロー)]​ をクリックしてキャンバスに戻ります。

    Listener コンポーネントの全体的な設定値が引き続き表示されます。

  6. [Path (パス)]​ が ​/api/*​ に設定されていることを確認します。このベストプラクティスにより、すべてのエンドポイントが ​base-URI/api/endpoint​ のような形式になります。

次のステップでは、ビジネスロジックを作成して、この API に必要な要素を設定します。

ステップ 3.3: API を設定する

Studio から提供されたスキャフォールディングを使用し、​/greeting​ エンドポイントモジュールを設定してアプリケーションを完成させます。

  1. [Message Flow (メッセージフロー)]​ ビューで、​/greeting​ エンドポイントモジュールが表示されるまでキャンバスを下にスクロールします。

    スキャフォールディングによって作成された GET Connector のビュー

  2. [Transform Message]​ コンポーネントを右クリックして削除します。

  3. [Mule Palette (Mule パレット)]​ で ​[Favorites (お気に入り)]​ を選択して、コンポーネント、サービス、トランスフォーマー、ルーターのリストを表示します。

  4. [Set Payload]​ をクリックして選択し、Transform Message を削除した ​[Process (プロセス)]​ スペースにドラッグします。

  5. hello-world-api​ API からの応答として送信されるデータを表示するロジックを指定します。

    1. フローに追加した ​Set Payload​ トランスフォーマーをクリックします。

      キャンバスのビューと Set Payload Connector の設定ダイアログ

    2. [General (一般)]​ タブで ​[fx]​ (関数) ボタンをクリックして選択解除します。このチュートリアルでは、値をハードコードします。

    3. [Settings (設定)]​ で、​[Value (値)]​ を ​Today the greeting is Hello​ に設定します。

  6. Anypoint Studio メニューで、​[File (ファイル)] > [Save All (すべて保存)]​ を選択します。

  7. キャンバスの ​[Configuration XML (設定 XML)]​ をクリックして、作業で生成された XML を確認します。

  8. [Message Flow (メッセージフロー)]​ をクリックして、次のステップ用にキャンバスを設定します。

これで、API を公開するためにデプロイできるシンプルな Mule アプリケーションを含むプロジェクトが作成されました。

この API は、通常の本番対応 API よりシンプルです。

  • ペイロード (GET 要求で供給されます) は、プロジェクト設定でハードコードされています。本番対応 API では、ペイロード値は別の提供元から供給されるか、もしくは変数の関数や DataWeave 式として定義されます。

  • インターフェースと実装 (ビジネスロジック) を別々の XML ファイルに分けるのがベストプラクティスですが、このチュートリアルでは簡潔にするために省略されています。

ステップ 3.4.API をテストする

API を含む Studio プロジェクトを Mule Runtime Engine (Mule) で実行し、サードパーティクライアントでテストします。

  1. キャンバス上の任意の場所を右クリックして、​[Run project hello-world-app (hello-world-app プロジェクトを実行)]​ を選択します。

    Studio 内でコンソールが開き、アプリケーションが Mule にデプロイされると状況メッセージが表示されます。 API を含むアプリケーションが Mule にデプロイされると、次のメッセージが表示されます。

    *******************************************************************************************************
    *            - - + APPLICATION + - -            *       - - + DOMAIN + - -       * - - + STATUS + - - *
    *******************************************************************************************************
    * hello-world-app                                  * default                        * DEPLOYED           *
    *******************************************************************************************************
  2. アプリケーションをテストするため、REST クライアント (Advanced Rest クライアント) を開いて GET 要求を送信します。

    http://localhost:8081/api/greeting

    REST クライアントで ​200 OK​ メッセージと ​Today the greeting is Hello​ という本文が返されます。

  3. キャンバス内を右クリックして、​[Stop project hello-word-app (hello-word-app プロジェクトを停止)]​ を選択します。

ステップ 3.5.組織でビジネスグループを作成する

アプリケーションを Exchange にパブリッシュして他のユーザーと共有するためには、先にトライアル組織でビジネスグループを作成する必要があります。 Exchange のアセットは、ルートビジネスグループ以外のビジネスグループに属している必要があります。

すでに組織でビジネスグループを作成してある場合は、このステップは省略してください。

ビジネスグループを作成する手順は次のとおりです。

  1. Anypoint Platform にログインします。

  2. ランディングページの ​[Management Center]​ を見つけて、​[Access Management (アクセス管理)]​ をクリックします。

  3. ナビゲーションパネルで、​[Business Groups (ビジネスグループ)]​ をクリックします。

  4. [Create business group (ビジネスグループを作成)]​ をクリックして ​[Name (名前)]​ に​「My Top Business Group」​ (上位のビジネスグループ) と入力します。

  5. [Parent business group (パートナービジネスグループ)]​ ドロップダウンから、自分が管理者になっているビジネスグループを選択します。

  6. [Owner (オーナー)]​ に自分のユーザー名を入力し、見つかった場合は選択します。

  7. [Can create environments (環境を作成可能)]​ チェックボックスをオンにして、​[Create (作成)]​ をクリックします。

[Access Management (アクセス管理)] 画面の組織名の下に新しいビジネスグループが表示されます。

ステップ 3.6.API を Exchange にパブリッシュする

他のユーザーがテンプレートやサンプルとして使用できるように、API を Exchange にパブリッシュします。

  1. Studio の Package Explorer で、​hello-world-app​ プロジェクトを右クリックします。

  2. [Anypoint Platform] > [Publish to Exchange (Exchange にパブリッシュ)]​ を選択します。

    API を Exchange にパブリッシュするためのダイアログ

  3. プロジェクトの値を入力します。

    • [User (ユーザー)]​ では、自分のユーザー名を選択します。

    • [Business group (ビジネスグループ)]​ で、作成した ​[My Top Business Group (上位のビジネスグループ)]​ ビジネスグループを選択します。この項目にデフォルトで表示されるルートビジネスグループを使用することはできません。ログイン情報の期限が切れている場合は、​[Add account (アカウントを追加)]​ をクリックしてログイン情報を再び追加します。

    • [Version (バージョン)]​ はデフォルト値のままにしておきます。

    • [Project type (プロジェクトタイプ)] > [Example (サンプル)]​ を選択します。

  4. [Next (次へ)]​ をクリックします。

  5. ユーザーが Exchange で使用可能なアセットを見つけやすくなるように、ドキュメント、説明、タグを追加できます。

  6. [Finish (完了)]​ をクリックします。

  7. 確認が求められたら ​[Yes (はい)]​ をクリックして続行します。

    プロジェクトが Exchange にアップロードされると、プロジェクトへの直接リンクが表示されます。

    Exchange にパブリッシュされた API へのリンクを表示するダイアログ

  8. リンクをクリックして、Exchange でプロジェクトを表示します。

    デプロイした hello-world-app のホームページ

  9. [Back to Assets List (アセットリストに戻る)]​ をクリックします。

    パブリッシュしたばかりのアセットの Exchange タイルを確認できるようになっています。

  10. (省略可能) Exchange からサインアウトして、作成したばかりのアセットを検索します。

    1. hello-world-app​ のタイルをクリックします。

    2. [Asset Versions (アセットバージョン)]​ セクションで、その他 (…​) メニューをクリックして ​[Version detail (バージョン詳細)]​ を選択します。HTTP Connector、Sockets Connector、APIKit モジュールが連動関係としてリストされます。 + ​Exchange で表示されるアプリケーションページのバージョン詳細

  11. Exchange でパブリッシュしたアセットを確認したら、Studio に戻って ​[OK]​ をクリックし、開いているダイアログウィンドウを閉じます。

次のステップ

API の開発を完了するため、次に以下を追加します。

  • Validation

  • デバッグをサポートするイベントログ

  • エラー処理

  • API の単体テスト

完成したら、アプリケーションの更新後のバージョンを改めてパブリッシュします。

開発者向けの詳細

Anypoint Platform と Studio の機能について知るには、以下を参照してください。