Design CenterによるAPI定義から取得まで

前回は簡単ではありますが、Anypoint Studioを使用してAPIを作成しました。今回はそのAPIを公開するまでの流れを説明したいと思います。

スポンサーリンク

APIの定義を RAMLファイルで定義する

まずは、APIを公開するにあたり、APIの定義情報を作成する必要があります。APIの定義情報はAnypoint PlatformのDesing Centerから定義ができます。

Anypoint Platformにログインして、左側のハンバーガーメニューから「Desing Center」を選択します。トップページに表示される「Start desinging」からも可能です。

DesignCenterの起動

空っぽのリストが表示されるので、「Create new」から「New API Spec 」を選択。

API定義の作成

ダイアログが表示されるので、API TitleにAPI名を入力します。任意名でOKですが、ここでは「hello-mule」と入力します。選択肢のところは、「I’m comfortable designing it my own」(自分でデザインするのは快適!?)を選択して、Specification Languageはデフォルトの「RAML 1.0」を選択します。

RAMLのバージョンを指定して作成

「Guide me through it」の方は使ったことがないのですが、ガイドがある分、もしかしたらこちらの方が初心者向けなのかもしれません。

エディタが表示されます。ここに、APIの定義を記載していく形になります。では、前回作成したGETメソッドの内容を記入してみます。

まず、title行から1行空けて、エンドポイントの「/hellomule:」を記載。最後のコロンを忘れずに。

RAMLファイルにエンドポイントを記載

改行すると自動的にインデントされます。RAMLの書き方では、インデントされた以下の文章が、「/hellomule:」の情報としてみなされます。下に候補が表示されるのでそこから選ぶのもいいでしょう。「/hellomule:」はGETメソッドなので、「get:」を入力します。

RAMLファイルへのメソッド記載

右側のDocumentationに記入したエンドポイントの内容が表示されます。先ほど記入した「/hellomule」のところにGETのアイコンが出ていることが分かります。

その他にも記入情報はありますが、一旦このシンプルな形でAPI定義を終了しましょう。

定義したAPIをExchange公開する

RAMLの記述が完了したら、右上の「Publish」ボタンから「Publish to Exchange」を押します。バージョンの入力を求められるので、Asset versionとAPI versionをそれぞれ記入します。右側に書き方がありますが、どちらも初版は「1.0.0」としています。

APIバージョンの記入

もう一度、「Publish to Exchange」ボタンでExchangeへ公開されます。

メニューからExchangeを見ると、先ほど公開した「hello-mule」が表示されていることが分かります。

Exchangeに公開されたAPI

Anypoint Studioで公開したAPI情報を取得

Exchangeに公開したAPIはAnypoint Studio内に取り込むことができます。

Anypoint Studioに戻って、Muleプロジェクトを右クリックします。[Manage Dependencies]→[Manage APIs]を選択。

「+」アイコンから「from Exchange」を選択します。

ExchangeからAPIの取得

Anypoint StudioにAnypoint Patformのアカウント情報が未登録の場合は認証します。「Add Account」を押して、Anypoint Platformへログインします。

ログイン未実施の場合は認証する

認証が完了したら、検索窓から先ほど公開したAPI「hello-mule」を入力します。自動的に検索が走り、先ほど公開したhell-muleが表示されるので、モジュールをAddします。

Exchange公開済みのAPIをプロジェクトに追加

このようにモジュールが取り込まれるので、「Apply and Close」で適用して閉じます。その後に表示される、「Do you want to scaffold ‘hello-mule’ specification?」の問いには「No」を選択します。

ちなみに、この質問を直訳すると、「API使用を足場にしたいですか?」みたいな訳になり、「Yes」を選択すると、先ほどRAMLで適宜したGETメソッド等のHTTPリスナーを含んだフローが自動生成されて提供されます。APIKitに準じたフローが提供されますが、インタフェースの作成は別途実施したいと思います。今回は「No」を選択します。

APIを追加すると、RAMLファイルを含むAPIの定義情報がプロジェクト内に取り込まれます。

取得したAPIがプロジェクトに取り込まれる

最後に

簡単ではありますが、以上がAPIの定義〜公開〜取得まで流れになります。今はまだエンドポイントとメソッドの定義しかしていないため、大した情報はありませんが、クエリーパラメータ、リクエスト情報、レスポンス情報なども定義することができ、それを取り込むことでプロジェクト内で使用可能となるため、APIの定義は設計の段階からあらかじめ決めておくことが推奨されています。

次回はSalesforceとの連携について、実際にAPIを作成して接続の確認までやっていきたいと思います。

MuleSoft
スポンサーリンク

コメント