はじめに
MuleSoftを勉強する機会があったので、公式チュートリアルをやってみました。
しかし2024年6月現在、いくつかのチュートリアルは Mulesoftの最新バージョンと画面や機能が異なっていてなかなか進めないところがあったので、現行バージョンの仕様を調べ、最終的にうまくいった手順をスクショ満載でまとめました。
本記事は、現時点の公式チュートリアルとMuleSoft現行バージョンの差分を埋めるものとなっています。
MuleSoft公式チュートリアルの構成
MuleSoftのクイックスタート・チュートリアルの項目は下図のようになっています。
1.でデスクトップアプリAnypoint Studioの操作を学び、2.でウェブ上のAnypoint PlatformでAPIの仕様を定義する方法を学びます。
3.が今回ご紹介する Introduction to developing on Anypoint Platform シリーズで、先のチュートリアルの復習をしつつ、APIをより実践的に実装していく内容になっています。
最初から順番にやっていって、3.2.までは問題なく進めました。
ところが、3.3.(Deploying and managing your first API:APIのデプロイと管理)と 3.4.(Connecting your first SaaS application to Salesforce:SaaSアプリケーションをSalesforceと繋げる)は、画面構成や機能が現行バージョンと違っていてつまずいたので、今のバージョンでやる方法を調べました。
本記事では、 Introduction to developing on Anypoint Platform シリーズのパート3にあたる、APIのデプロイと管理(Deploying and managing your first API)のチュートリアルが、MuleSoft現行バージョンでうまくいった手順をまとめています。
この記事の元ネタのMuleSoft公式チュートリアルはこちらです:
Deploying and managing your first API
https://developer.mulesoft.com/tutorials-and-howtos/quick-start/deploying-managing-your-first-api/
パート4は現行バージョンだとパート3以上に手順が違うので、後日また書く予定です。
準備
このチュートリアルでは、下記のアプリケーションを使います。チュートリアルを進める前に無料トライアルアカウントの取得や、デスクトップアプリケーションのダウンロード/インストールをする必要があります。
- Anypoint Platform - Anypoint Platformのアカウントが必要です。今回は無料トライアルアカウントを利用しています。Anypoint Platformの操作はブラウザ上で行います。
- Anypoint Studio - APIの実装を開発するためのデスクトップ・アプリケーションです。ダウンロード・インストールしてください。
- RESTクライアント - APIテストのために何かしらのRESTクライアントアプリが必要です。本記事ではPostmanを使います。
前の2つのチュートリアルを完了している前提で進むので、予め下記の Introduction to developing on Anypoint Platform シリーズ パート1、パート2をご参照ください。
日本語訳版を提供しているサイトもありました。
Introduction to developing on Anypoint Platform シリーズ
パート1
公式チュートリアル:Designing your first API specification
TerraSky様のサイト:【クイックスタート:パート1】API Designerで最初のAPIを設計する方法
パート2
公式チュートリアル:Designing your first API specification
TerraSky様のサイト:【クイックスタート:パート2】初めてのMuleアプリケーション開発
1. APIのAutodiscoveryを設定する
ではさっそく、前のチュートリアル(パート2)で作成したAPIアプリのAutodiscoveryを設定します。
1.1 Anypoint Platform でAPIを登録する
API Autodiscoveryを設定するには、まず(ブラウザー上で)Anypoint Platformにログインし、左上のメニューからAPI Managerを開きます。
Add API ドロップダウンから Add new APIを選択すると
設定画面が開きます
Select runtimeセクションでは Mule Gateway を選択し、Nextボタンを押下します。
APIセクションは Select API from Exchange を選択し、Select APIセクションでは、前のチュートリアルで定義したAPI(Contact API)を選択してNextボタンを押下します。
次の Downstream 設定ページは何も変更せずにNext。
その次の Upsteam 設定ページは Upstream URL に "https://" が入力されていたら、削除してNext。
Reviewページで特に問題がなければ Save ボタンを押して設定を保存します。
保存後 API Manager 画面に戻ると、登録済みAPIのリストの Instance カラムでAPIの Instance ID が確認できます。
次のステップで、今登録したContact API の Instance ID を使うので、控えておきます。
1.2 Anypoint Platform で登録した API Instance ID をアプリの Autodiscovery に紐づける
次は、前のチュートリアル(パート2)で実装したアプリに、前のステップ登録した API の Instance IDを紐づけます。
まず、デスクトップアプリ Anypoint Studio で、前のチュートリアルで作成した Contract APIアプリを開き、Global Elements ボタンを押下して画面を開きます。
Create ボタンでダイアログボックスを開き、Component configurations 配下の API Autodiscovery を選択して OK します。
API Autodiscovery の設定では、API Id フィールドに、前のステップで控えた API Instance IDを入力し、Flow Name 欄は xxxx-main (contact-api-main等)と名前の付くフローを選びます。OKボタンを押下。
2. ローカルのAnypoint Studioで実装したアプリをCloudHubにアップロード/デプロイする
Anypoint Studioで作成したContact APIアプリを、CloudHubにアップロード/デプロイします。
アップロードを設定する際に、ウェブ上のAnypoint Platform側にある設定を参照するので、ブラウザーでAnypoint Platformを開いておくと便利です。
まず、デスクトップアプリ Anypoint Studio の Package Explorer で Contact API のプロジェクトを右クリックしてメニューを表示します。
メニューの Anypoint Platform から Deploy to CloudHub を選択します。
ポップアップ内でAnypoint Platformにログインすると Deploy Application 画面が開きます。
一番上のフィールドがアプリケーション名ですが、すでに同じ名前が使用されている場合は赤く表示されて×印がつきます。
未使用のアプリケーション名に変更し、緑のチェックがつくようにしてください。
画面中央の4つのタブの Runtime タブの設定は特にありません。
Properties タブを開き、anypoint.platform.client_id、anypoint.platform.client_secret の2つのプロパティを追加します。
上記プロパティの値は、別のブラウザーでAnypoint Platformを開いて、API Manager から取得します。以下その方法です。
API Manager 画面で Environment ボタンを押下します。
Environment Information ポップアップ画面で Client ID と Client secret が確認できるので
それぞれの値をコピーし、先のデプロイ設定のanypoint.platform.client_id、anypoint.platform.client_secret の値として入力します。
プロパティの下にある Deploy Application ボタンを押下して Contact APIアプリをアップロード/デプロイをスタートします。
デプロイが完了すると「ウィンドウを閉じる」または「ブラウザーで確認」のボタンが表示される完了画面に遷移するので、それまで待ちましょう。
CloudHubにデプロイした Contact API アプリの動作テストをする
CloudHub にデプロイしたアプリは、Anypoint Platform の Runtime Manager で確認できます。
デプロイしたアプリをクリックして開き、エンドポイントのURLをコピーします。
CloudHubにデプロイしたアプリを、Postman でテストしてみましょう。
Postmanを開き、CloudHub上のAPIにGETリクエストを投げます。
GETのURLは、先ほどRuntime Managerでコピーした <エンドポイントURL> に "/api/contacts" を付けた形式になります。
例:contactapi-xxx-cloudhub.io/api/contacts
GETリクエストを送信して、前のチュートリアルでローカルでテストした時と同じレスポンスが返ってくれば成功です!
最後に
本記事では、MuleSoft公式チュートリアルの Introduction to developing on Anypoint Platform シリーズ パート3にあたる Deploying and managing your first APIを、2024年6月現在のMuleSoft最新バージョンで学ぶ際の手順をご紹介しました。
このシリーズのパート4にあたる Connecting your first SaaS application to Salesforce は、MuleSoftの現行バージョンだとパート3以上に手順が違うので、後日また手順を投稿する予定です。