PR

【検証内容】
簡単にAPIを作れるか キャッシュ機能の効果は?

 ここからはAPI Managementの主要な機能の検証を行う。

 検証1では、API定義ファイルのインポート機能などを使い、改めてAPIを作成し、どれだけ容易なのかを確かめる。さらに検証2として、作成したAPIについてのアクセス権限をユーザーに付与する手順を踏み、難易度を確かめる。

 検証3では、API Managementのキャッシュ機能の効果を調べる。キャッシュ機能をオンとオフにした状態で、応答時間とCPU使用率を測定する。

 なお検証1~3で共通して用いるAPIのバックエンドリソースは、Azure仮想マシンにデプロイしたオープンソースのチケット管理システム「Redmine」とする。Redmineはプロジェクトでのタスク管理や課題管理などに用いられる。通常はWebブラウザーから利用するが、チケットの閲覧や作成などをAPI経由でも行える。

 RedmineをAPI化することによって、外部のパートナーとともに利用する、Azure上のWebアプリケーションサーバーで受け付けた問い合わせを自動的にRedmineのチケットに連動させる、といった使い方が可能になる。

検証1 API作成
API定義ファイルがあれば インスタンス作成除き15分

 検証1では、API ManagementでAPIを作成して公開する作業を行い、難易度や手間を検証する。

 準備として、Azureの西日本リージョンで仮想マシンを作成し、バックエンドリソースとするRedmineサーバーを稼働させた。さらに、Redmine用にインターネット上で公開されているAPIの定義ファイル(Swagger形式)を用意し、必要な修正を加えた。

 まずAPI Managementのインスタンスを作成する。Azure ポータルで、先ほどと同じように必要事項を入力。その際、インスタンスの配置先(画面ではLocation)として、Redmineの仮想マシンを配置した西日本リージョン(Japan West)を指定した。

 15分ほどでインスタンスの作成が完了。続いてAPIを作成するため、AzureポータルのAPI Managementブレードで「Add API」をクリックし、今度は「OpenAPI specification」のボタンを選択する。

 これにより、Swagger形式で記述したAPI定義ファイルを取り込める。

 API ManagementではSwaggerのほかにも、WADLやWSDLといった形式のAPI定義ファイルもインポートできる。

 定義ファイルを読み込むと、画面上で必要項目が自動的に入力された(画面4)。前述のAPIURL suffixとProductsについては、手動で入力した。Productsは、デフォルト設定の「Starter」にした。

画面4 API定義項目の自動入力
画面4 API定義項目の自動入力
[画像のクリックで拡大表示]

 ここまでの設定をして画面上の「Create」ボタンをクリック。少し待つと、APIが作成された。

作成したAPIをすぐにテスト

 作成したAPIをテストするため、「Test」タブからリクエストを発行する。画面5は「/projects」というAPIをGETメソッドで呼び出したところだ。想定通り、Redmineに登録されているプロジェクトの一覧を取得できた。

画面5 APIの呼び出しテスト
画面5 APIの呼び出しテスト
[画像のクリックで拡大表示]

 このテスト機能は便利だが不具合もあった。まれに、APIの設定やバックエンドの動作状況に問題がないのにテストがエラーとなる場合があるのだ。その場合は、Webブラウザーでリロードすると解消されることがある。

 ここまで、API作成の作業を検証した。API Gatewayのインスタンスのデプロイ待ち時間を除けば、所要時間は15分ほどだった。

 効果を発揮したのは、API定義ファイルの読み込み機能だ。API定義ファイルがあればAPI作成は非常に容易である。

 流用できるAPI定義ファイルが無ければ、手動でAPIを定義しなければならない。その場合、APIのメソッド数に比例して作業時間が増える。