MuleSoftでAPIを作成してみよう

前回はMule開発するにあたって必要な環境を準備しました。本記事からは実践編。まずはMuleの基礎となるAPI作成について簡単に手順を記載したいと思います。

今回はAPIを作って、実際にローカル環境で動かすところまでを確認してゴールとしたいと思います。

スポンサーリンク

環境・バージョン

今回のAPI作成にあたり、使用したOSやソフトウェアのバージョンは以下の通りです。

OS:macOS Monterey ver 12.1
Anypoint Studio:Eclipse 4.19 for Mac OS X Anypoint Studio 7 and Mule 4

今回はMacOSでの作成、検証でしたが、多少のバージョン違いやWindowsでの実施も問題なくできるようです。

Anypoint Studioのソフトウェアアップデート

MuleのAPI作成はAnypoint Studioから作成します。
Anypoint Platform上からでも作成可能ですが、今回はAnypoint Studioから作成します。

まずは前回インストールしたAnypoint Studioを起動しましょう。ワークスペースは任意の場所に作成します。

API作成前にソフトウェアを確認します。[Help]→[Check for Update]で更新可能なソフトウェアがないか確認。

おそらく、インストール直後は最新になっていないので、最新版に更新してしまいましょう。

利用規約に同意してアップデートが実行されます(多少時間かかります)。
アップデート完了後、ソフトウェアが更新されると再起動を要求されるので、Anypoint Studioを再起動します。

APIを作成する

プロジェクトの作成

Mule周りのソフトウェアを最新にしたところで、Muleプロジェクトを作成します。

Package ExplorerのCreate a Mule Projectを選択。
([File] → [New] →[Mule Project] でもOK)

Muleプロジェクトの作成

プロジェクト名を入力します。
任意名でOKですが、今回は「HelloMule」にします。
その他、ランタイムなどの選択もありますが、デフォルトのものでOKです。

Muleプロジェクト設定

このようにプロジェクトと必要なモジュールが作成されます。
デフォルトで開いているhellomule.xmlがAPIのフローを定義するxmlファイルとなっており、ここを編集することでAPIが構築されます。

作成されたMuleプロジェクト

xmlってことは構文を覚えなきゃいけないの?と思うかもしれませんが、心配ご無用!
右側にあるMule Paletteを駆使することで、パレットにドラッグ&ドロップを作成することで自動的にxmlが生成され、GUIベースでのフロー構築が可能になります。

フローの作成

では、実際にAPIを作成してみましょう。今回はHTTPリクエストを受け取るコネクタエンドポイントを作成します。

右のMule Paletteから[HTTP]→[Listener]を選択し、hellomuleのキャンバスにドラッグ&ドロップします。

HTTP Listenerをフローに追加

Generalから以下内容を設定します。

◆Connector configuration
まだ何も定義されていないので、Create a new configurationで作成します(+アイコン)。
HTTPの接続情報を入力しますが、今はlocalhostでの検証なので、デフォルトのままでOKです。

Connector configurationの作成と設定
Configurationの設定

◆Path
エンドポイントのパスを設定。ここでは「/hellomule」を設定します。

◆Display Name
フローコンポーネントの表示名になります。
デフォルトのままでもOKですが、分かりやすい表示名にするのが推奨とされています。
今回は「GET /hellomule」という表記でいきたいと思います。

ListenerのGeneral設定

続いて、Advancedも設定します。
こちらはAllowed methodsを設定します。
今回はHTTPのGETメソッドでAPI処理をしたいので、Allowed methodsにGETを指定しましょう。

ListenerのAdvanced設定

これで、HTTPリクエストを受け取れるようになりました。
このままでは、その後の処理がないため、何もせずに終わってしまいます。

動作することを確認するために、Loggerを使って、HTTPリクエストを受け取った時に「Hello Mule!」を表示するようにします。

右のMule Paletteから[Core]→[Logger]を選択し、hellomuleのキャンバスにドラッグ&ドロップします。
ドロップする位置は、先ほど作成したListener(GET /hellomule)のやや右側に配置するようにします。
(Processという文字があるあたり)

Loggerをフローに追加

ドロップするとこのように、Listenerの後にLogger処理されるフローが出来上がります。

Listenerと接続されフローができる

Loggerを選択して、GeneralのMessageに「Hello Mule!」と設定します。
これでLoggerにメッセージが記録されます。

これで、どシンプルですがフローが作成できました。
プロジェクトを保存してください。

作成したAPIを呼び出してみる

アプリケーションの起動

それでは作成したAPIが動くか検証してみましょう。

キャンバスを右クリックし、「Run project hellomule」でアプリケーションが起動します。

プロジェクトの起動

コンソールにhellomuleがDEPLOYEDになれば成功です。

デプロイが出れば成功

Advanced REST Clientを使ってリクエスト送信

アプリケーション起動成功と言っても、HTTPリスナーが受け入れ状態になっただけで、リクエストが送信されない限り動きません。実際にHTTPリクエストを送信して動作を確認してみます。

ここで使用するのがAdvanced REST Clientです。
Advanced REST Clientを起動しましょう。

上のURL入力欄にGETメソッドの指定および以下URLを記入し、送信(三角のアイコン)します。

http://localhost:8081/hellomule

レスポンスで200というステータスコードが返れば成功です。

レスポンスに200が返れば成功

Loggerで設定したメッセージを確認するには、Anypoint Studioのコンソールに「Hello Mule!」が記載されていればOKです。(横にスクロールが必要です)

Loggerによるメッセージの表示

これで、作成したAPIが動いていることが確認できました。

次回、作成したAPIを公開

本記事では簡単なAPIまで作成しました。
まだ、ローカル環境でしか使えないAPIとなっているため、Anypoint Platformを使用してAPIを公開したいと思います。

MuleSoft
スポンサーリンク
エスパーラボ

コメント