LoginSignup
5
5

More than 5 years have passed since last update.

Azure API ManagementとAzure モバイルサービスを組み合わせて使ってみた

Posted at

kobito.1402416220.009483.png

Azure Remote Appがやっと使えるようになったけど、構成中のまま進まないので、あまり使われて無さそうなAPI Managementを試してみた。

API Managementは自分が作ったWeb APIを管理するために使う。Twitter APIとかでよくある1分間に5回まで、1日100回までとかいったクォータを管理することができるのと、APIのドキュメントを自動生成してくれる。

考えられるシチュエーションとしては、とあるWebサービスなりスマホアプリを作成したら、マッシュアップのため開発者向けAPIを提供することになった。でも開発者用のAPIキーを管理するのはめんどくさいし、特定の開発者がリソースを占有するのも問題だ。削除のAPIを開発者に公開したくない。

そんなときに使えるサービスなのかなと思う。

ダッシュボードはこんな感じでまぁまぁ見やすい感じ。

kobito.1402416521.782845.png

モバイルサービスのAPIの追加

モバイルサービスのToDoItemテーブルを操作してみたいと思います。モバイルサービスは別途サービスを作成して、ToDoItemテーブルを作成しておきます。

API Managementにて、ADD API を選びます。

kobito.1402417097.819989.png

タイトル、モバイルサービスのURL、API Managementのサフィックスをそれぞれ次のようにいれます。

kobito.1402417234.289642.png

一覧に表示されるので、TODOITEMSをクリックして編集します。

kobito.1402417262.804404.png

「Operation」タブを選択し、「ADD OPERATION」をクリック。API Managementからモバイルサービスに対して行う操作を登録します。

kobito.1402417327.451279.png

次のようにHTTP verb等に値をいれます。

kobito.1402417417.421747.png

Parametersは無くてもいいですが、とりあえずfilterだけ設定できるようにしてみます。パラメーターに設定できる値は他にもあります。Query records operationを参照してください。

kobito.1402417666.691807.png

設定が終わったらSaveをクリックして保存します。

モバイルサービスAPIキーの設定

API ManagementからモバイルサービスのAPI呼び出しを行う際に、APIキーが必要です。(モバイルサービス側の構成で認証不要にしていれば必要無い)

APIキーの設定はリクエストヘッダーにX-ZUMO-APPLICATIONを設定します。API Managementにてリクエストヘッダーを設定してAPIキーを入力するには、Policiesを編集します。(最初わからなくて出来ないかと思った)

kobito.1402417980.266534.png

Policy ScopeのAPIでtodoitemsを選択して、Policy definition の<inbound />の間に次の値を入れてRecallulate...ボタンを押して保存します。

<set-header name="X-ZUMO-APPLICATION" exists-action="append">
    <value>YOU APLICATION KEY</value>
    <!--for multiple headers with the same name add additional value elements-->
</set-header>

kobito.1402418161.956726.png

開発者ポータルを確認してみる

以上の操作をしてできあがった開発者向けのポータルが https://nnasaki.portal.azure-api.net です。

kobito.1402418574.565741.png

先ほど設定したAPIドキュメントは https://nnasaki.portal.azure-api.net/docs/services/2/operations/8 にあります。

kobito.1402418639.425234.png

サンプルコード自動生成

面白いのは、各言語ごとにサンプルコードを自動生成してくれます。JavaもあるしCurlのサンプルとかも面白い

kobito.1402418720.728917.png
kobito.1402418752.162788.png

ブラウザ上でAPIが試せる

さらにOpen Consoleをクリックすると、その場でAPIが試せます。subscription-keyを設定して(ログインしていないと出ない)HTTP GETをクリックする。

kobito.1402418874.508204.png

こんな感じでレスポンスが帰ってきます。

kobito.1402418954.778527.png

$filterにcomplete eq falseといれてHTTP GETしてみます。

kobito.1402419042.538014.png

ちゃんとフィルタリングした結果が帰ってきます。

kobito.1402419101.345263.png

まとめ

WEB上でぽちぽちしていくだけでそれっぽい開発者ポータルとAPIドキュメント兼プレイグラウンドが出来てしまいました。ポータルのレイアウトの変更とかもできるし、独自ドメインの設定も出来るようです。

モバイルサービスと組み合わせると、それっぽいWebサービスが1時間かからずにできちゃいますね。恐ろしい世の中です。

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5