原典:Windows Azure:Major Updates for Mobile Backend Development
Windows Azure:モバイルバックエンド環境の大幅アップデート
今回リリースしたWindows Azureの更新には、クラウドで使用するモバイルアプリケーションの開発を非常に簡単にできるようにした素晴らしいものがあります。例えば、以下のようなものです。
- Mobile Services:独自APIサポート
- Mobile Services:Gitソース管理のサポート
- Mobile Services:Node.js NPMモジュールのサポート
- Mobile Services:NuGetを通じた.NET API
- Mobile ServicesとWebサイト:Mobile ServicesとWebサイトに無償20MB SQL Databaseオプション
- Mobile Notification Hub:Androidブロードキャストのプッシュ型通知サポート
上記の新機能はすべて現在使用可能です(注:まだプレビューのものもあります)。以下はその詳細になります。
Mobile Services:独自API、Gitソース管理、NuGet
Windows Azure Mobile Servicesは、簡単にモバイルバックエンドを立ち上げる機能を提供しており、Windows 8、Windows Phone、iOS、Android、HTML5のクライアントアプリケーションのサポートに使用できます。初回プレビューから、データバックエンドロジックを簡単にサーバーサイドスクリプトで拡張できる機能をサポートしてきました。これは、クラウドのバックデータテーブルに対して、クライアントサイドのCRUDオペレーションの一部として実行されるものです。
今回の更新で、この機能をさらに拡張して、Mobile Serviceバックエンドから独自APIを作成、公開し、データテーブルに関連付ける必要なく、Mobileクライアントに簡単に発行できる機能も導入します。
この機能により、例えば、SQL Databases以外のデータソースを使用(例えば、Table ServicesやMongoDBなど)、サードパーティAPIへのブローカーコール、Windows Azure QueuesおよびService Busとの統合、独自のJSONペイロードの使用(例えば、Windows Periodic Notifications)、オンプレミスに返るサービスへのルートクライアントリクエスト(例えば、新しいWindows Azure BizTalk Services)、単純にデータベースオペレーションに対応しない機能の実装などの、まったく新しいシナリオが可能になります。
独自APIは、サーバーサイドJavaScript(Node.jsを使用して)に書くことができ、NodeのNPMパッケージを使用できます。今後は、.NETを使用して独自APIが書けるようなサポートも追加していく予定です。
独自APIの作成
既存のMobile Serviceへ独自APIを追加することは非常に簡単です。Windows Azure管理ポータルを使用すると、Mobile Serviceにある新しい“API”タブをクリックして、“CREATE A CUSTOM API”ボタンをクリックすればその中で新しい独自APIが作成できます。
APIに好きな名前を付けたら、HTTPメソッドに対して適用するセキュリティのアクセス許可を選択します。全員、有効なアプリケーションキーを持つもののみ、認証されたユーザのみ、管理者など、独自APIに対するHTTP動詞のロック範囲を簡単に決定できます。コードを書くことなく、Mobile Servicesはそのアクセス許可を適用します。
OKボタンをクリックすると、新しいAPIがAPIリストに表示されます。選択すると、いくつかのプレースホルダ機能を持つデフォルトスクリプトを編集することができます。
今回のリリースにより、独自APIはNode.jsを使用して書くことができるようになり(今後、独自APIを.NETで書けるようにする予定です)、独自APIのプログラミングモデルはモジュールに対するNode.js変換に従います。これは、HTTPリクエストを処理する機能をエクスポートするためのものです。
上記のデフォルトスクリプトは、HTTP POSTリクエストに対する機能を公開しているところです。GETをサポートするときは、そのようにexportステートメントを変更するだけです。以下は、Azure Node APIを使用して、Windows Azure Table Storageからデータを読んだり、返したりするコードの例になります。
変更を保存した後は、どのMobile Serviceクライアントアプリケーション(Windows 8、Windows Phone、iOS、Android、CORSを伴ったHTML5など)からでもこのAPIを呼び出すことができます。
以下は、.NETおよび新しいInvokeApiAsyncメソッドを使用して、Windows Storeアプリケーションから非同期にAPIを実行させ、XAML内でコントロールに結果をデータバインドさせるコードになります。
private async void RefreshTodoItems() { var results = await App.MobileService.InvokeApiAsync<List<TodoItem>>("todos", HttpMethod.Get, parameters: null); ListItems.ItemsSource = new ObservableCollection<TodoItem>(results); }
独自APIで認証と承認を統合させることは、Mobile Servicesでは非常に簡単です。データリクエストのように、独自APIリクエストは、Mobile Servicesの同じビルトイン認証および承認サポート(Microsoft ID、Google、Facebook、Twitter認証プロバイダーとの統合を含む)を利用することができ、独自APIコードをプッシュ型通知、ログ、SQLなどのその他のMobile Service機能と統合させることも簡単に行うことができます。
新しいチュートリアルで、独自APIサポートの使用方法を確認し、アプリに適用してみてください。