みなさん、こんにちは。以前にMulesoftを始めるにあたっての準備や環境作成について、こちらの記事を掲載しました。本記事では、簡単なAPIを作成して、APIの作り方を学んでいきたいと思います。
目的・ゴール
Muleで簡単なHTTPリクエストを受信したときに、レスポンスに「Hello Mule」を返却するAPIを作成します。
なお、今回はローカル環境にてAPIを動かすため、Anypoint Platformを経由しません。また、Salesforce環境にも接続しません。よって、開発環境用のPCにAnypoint StudioとAPIを確認するためのAdvanced REST Clientを用意します。
Anypoint StudioでAPIを作成する
Anypoint Studioの起動
インストールしたAnypoint Studioを開くと、ワークスペースの選択ダイアログが出るため、任意の場所に指定します。
Anypoint StudioはEclipseベースの開発統合環境のため、Mule開発に必要なプラグインが既にインストール済みの状態です(その分、Anypoint Studio自体の動作は若干重めです)。プラグインを最新化するために、[Help]→[Check for Updates]からインストール可能なプラグインかないかを確認します。
![利用可能なソフトウェアの更新](https://quanz.co.jp/blog/wp-content/uploads/2022/09/スクリーンショット-2022-09-11-15.24.44-1024x594.png)
更新可能なソフトウェアがあれば、最新化しておきましょう。
Muleプロジェクトの作成
Anypoint Studioを最新化したところで、次はプロジェクトを作成します。Javaなどと同じように、Muleでも同様にプロジェクトを作っていきます。
Package Explorerにある[Create a Mule Project]または[File]→[New]→[Mule Project]からプロジェクトを作成します。
![Muleプロジェクトの作成](https://quanz.co.jp/blog/wp-content/uploads/2022/09/スクリーンショット-2022-09-18-15.56.50.png)
プロジェクト名は任意の名前でOKです。以外の入力やチェックはデフォルトのままでOKです。
![Muleプロジェクト設定](https://quanz.co.jp/blog/wp-content/uploads/2022/09/スクリーンショット-2022-09-18-15.58.16.png)
プロジェクトは以下のような構成となっています。これから作成していくMuleのAPIは「src/main/mule」の中で作成していくことになります、プロジェクト作成の段階で、「プロジェクト名.xml」という名前のMuleのAPI(中身は空です)のプログラムが記載されたファイルが作成されています。これをMuleコンフィグレーションファイルと呼びます。
![Muleプロジェクトの構成](https://quanz.co.jp/blog/wp-content/uploads/2022/09/スクリーンショット-2022-09-18-16.05.17.png)
APIの作成
今回はこのデフォルトで作成されているコンフィグレーションファイルにAPIのロジックを記載していきます。プログラムと言っても、ソースコードを打ち込むという感じではなく、GUIベースで必要なコンポーネントを追加しながらフローを組み立てていく形での実装となります。
それでは早速作っていきましょう!
まずは、HTTPのリクエストを受信するためのHTTP Listenerを配置します。右側にあるMule Paletteから[HTTP]→[Listener]をドラッグ&ドロップします。
![HTTP Listenerの配置](https://quanz.co.jp/blog/wp-content/uploads/2022/09/スクリーンショット-2022-09-18-16.17.48.png)
以下のようにHTTP Listenerが作成されます。HTTP Listenerには必須の設定がありますので、下部にあるプロパティからいくつか設定を入れておきます。
今回はGETメソッドのAPIを作成したいと思います。
まずは、[General]の[Basic Setting]にある[Connector configuration]からHTTPのコネクタ設定を行います。右側の「+」アイコンからHTTP_Listener_configを作成します。今回はlocalhostで作っていくためデフォルトのままでOKです。
![HTTP Listener Configの設定](https://quanz.co.jp/blog/wp-content/uploads/2022/09/スクリーンショット-2022-09-18-16.44.32-1024x691.png)
次にパスを設定します。[General]の[General]にある[Path]に「/hellomule」と入力します。
![HTTP Listenerのパス設定](https://quanz.co.jp/blog/wp-content/uploads/2022/09/スクリーンショット-2022-09-18-16.45.57.png)
最後にメソッドの設定をします。GETメソッドで動作するようにしたいので、[Advanced]の[Allowed methods]に「GET」と入力します。
![HTTP Listenerのメソッド設定](https://quanz.co.jp/blog/wp-content/uploads/2022/09/スクリーンショット-2022-09-18-16.47.38.png)
これでHTTP Listenerの設定は終了です。必須項目を入力したことで、Listenerに付いていたエラーのアイコンが消えているかと思います。
Listenerの次は「Hello Mule」を返すレスポンスを設定します。こちらはMule Paletteの[Core]→[Set Payload]をフローのProcess上にドラッグ&ドロップします。
![Set Payloadの配置](https://quanz.co.jp/blog/wp-content/uploads/2022/09/スクリーンショット-2022-09-18-17.12.18.png)
Set Payloadのプロパティから[General]→[Value]の値に「Hello Mule」を入力します。
![Set Payload設定](https://quanz.co.jp/blog/wp-content/uploads/2022/09/スクリーンショット-2022-09-18-17.16.40.png)
以上で簡単ではありますが、APIの作成が終了です。
作成したAPIを動かしてみる
それでは作成したAPIを動かしてみましょう。まずは作成したAPIをデプロイします。今回はローカル環境へデプロイすることになるので、フロー上を右クリックして、[Run project プロジェクト名]または[Run]→[Run]から実行します。デバッグを実施したい場合は、[Debug project プロジェクト名]でもOKです。
![Muleプロジェクトの実行](https://quanz.co.jp/blog/wp-content/uploads/2022/09/スクリーンショット-2022-09-18-17.33.25.png)
エラーがなければコンソール上に「DEPLOYED」というログが出力されます。これが出ればフローが有効化された状態となり、APIを実行することができます。
![DEPLOYEDになれば実行可能](https://quanz.co.jp/blog/wp-content/uploads/2022/09/スクリーンショット-2022-09-18-17.36.32.png)
Advanced REST Clientから動作を確認します。URLを「http://localhost:8081/hellomule」と入力して送信して、レスポンスに「Hell Mule」と表示されれば成功です!
![Acvanced REST Clientでの確認](https://quanz.co.jp/blog/wp-content/uploads/2022/09/スクリーンショット-2022-09-18-17.44.25-1024x526.png)
最後に
簡単ではありますが、APIを作成して実際に動かすところまでの流れを紹介しました。あとは、Muleフローに組み込むコンポーネントの機能を理解しつつ、フローを組み立てればいろいろなことができるようになるのではないかと思います。
次回はSalesforce環境を使って実際に連携するAPIを作ってみたいと思います。