Windows Azure上にASP.NETのWebサイトを構築すれば直接Mobile Servicesのデータベースに接続できそうだけど、いかんせんASP.NETをほとんど触ったことがないので目的達成まで時間がかかりそう・・・。
というわけでREST APIなら使えることが明らかなのでこちらを利用してみることにします。
Mobile Services側はJavaScriptで作成。
データのアクセス許可はアプリケーションキーを持っていれば利用可能に設定しておきます。
Windows Azure Mobile Serviceはデフォルトで色々なAPIが用意されているのでリファレンスを見ながら進める。
データはGETで取得できて、ヘッダーにアプリケーションキーを含めればよい模様。
アプリケーションキーは接続サンプルなどを見ると記述されている。
下の画像はストアアプリとMobile Servicesを接続する際の説明画面だが、灰色に塗りつぶした部分の1行目にMobile Servicesのドメイン。2行目にアプリケーションキーがあります。
続いてASP.NET側のコード。
こっちはHttpClientを用いたシンプルなリクエスト。
ヘッダーにキーをしているのがポイント?
this._client = new HttpClient(); this._client.DefaultRequestHeaders.Add("X-ZUMO-APPLICATION", "{アプリケーションキー}"); this._client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); var result = this._client.GetStringAsync("https://{あなたのMobiel Servicesドメイン}/tables/{テーブル名}").Result; var behavior = JsonConvert.DeserializeObject<IEnumerable<{テーブルを表すクラス}>>(result);
{}で囲んだ部分は自分の環境のものに書きかえてください。
「https://{あなたのMobiel Servicesドメイン}/tables/{テーブル名}」この部分のドメインは先述の画像の灰色で塗りつぶした一行目のもの。テーブル名はデータを取得したいテーブルの名前を入れます。
「JsonConvert.DeserializeObject<IEnumerable<{テーブルを表すクラス}>>(result);」このテーブルを表すクラスは、サンプルのTodoItemクラスなどを参考にしてもよいですが、よくわからない場合は、Json形式のデータをデシリアライズしているだけなので、一旦はコメントアウトして、その上の行のvar resulに渡される通信データを確認してみても良いと思います。
Please give us your valuable comment