今回は、View の代わりとなる API を作成します。
Easy Tables は簡単で素晴らしいんですが、簡便さを追求してるが故、JOIN したクエリの結果セットが欲しいというようなシナリオには対応していません。
さらに、Xamarin対応の Microsoft.WindowsAzure.MobileServices.IMobileServiceSyncTable インターフェースにも Join メソッドが無いため、自前でどうにかする必要があります。
結論として、カスタム API を作成し、その API で JOIN したクエリの結果セットを返すようにしました。
カスタム API では任意のクエリが利用できるので、IMobileServiceTable インターフェースがサポートしていない機能を実装したいときには、カスタム API を作成するのが良さそうです。
まずは Azure ポータルにログインします。
すべてのリソース → あなたが作成したWebApp → すべての設定 → Easy API をクリック。
Add をクリック
作成するカスタム API の名前を入力し、OK をクリック。
作成された API、ExtendedTestItem をクリックし、
Edit Script をクリックします。
Visual Studio Online で、当該 API の Node.js 編集画面が開きますので、
JOIN したクエリの結果セットを返す、スクリプトを記述します。
※SQLさえ書き換えれば、どんな結果セットでも返せます。
スクリプトは入力と同時に保存されているので、これで API の作成が完了しました。
次に、API が正しく動作しているか確認するため、API に直接リクエストを投げて確認します。
今回は、Postman という Chrome アプリを使用しました。
アプリのインストールはこちらから
URL に API の URL (http://(アプリのURL)/api/(API名)) を入力、
ヘッダに、zumo-api-version : 2.0.0 と Content-Type : application/json をセットした上、
GETでリクエストします。
下記のように結果セットを json で取得できれば API 作成成功です。
これを Xamarin のアプリ側から InvokeApiAsync で叩けばエンティティを取得できます。
(この部分は後ほど詳しく述べます)
今回はここまでです。