モバイル サービスについて
Windows Azure で利用できるサービスの一つに モバイル サービス というのがあります。
モバイルサービスと書かれてしまうとなんなのか判りづらいのですが、
- REST 経由で使用可能なデータベース(20MBytes の場合は無料)
- 認証機能
- モバイルへのプッシュ通知
- スケジュール
といったサービスをセットで提供してくれるものとなります。
ちなみにウェブサービスを提供するものなので、ウェブサイト用のスペースは提供されません。(ウェブサイトが必要な場合は、別途 web sites や virtual machines の契約が必要です)
■
モバイルサービスを開始すると、以下の様な画面が表示されてサンプルコードや組み込み例を提供してくれます。
提供してくれるのはありがたいのですが、 Python 用のサンプルコードがありませんでした。
というわけでメモがてら記述しておきます。
REST insert / select / update / delete
# -*- coding: utf-8 -*- import sys import httplib import urllib import json API_HOST = "xxxxxxxx.azure-mobile.net" API_CODE = "xxxxxxxx" def insert(table_name, id): oCHttp = httplib.HTTPSConnection(API_HOST) jsonData = json.dumps({"id": id, "text": "ABCD"}) dictHead = { "Accept": "application/json", "X-ZUMO-APPLICATION": API_CODE, "Content-Type": "application/json", "Host": API_HOST, "Content-Length": len(jsonData) } oCHttp.request("POST", "/tables/" + table_name, jsonData, dictHead) oCRes = oCHttp.getresponse() print oCRes.status print oCRes.read() def select(table_name): oCHttp = httplib.HTTPSConnection(API_HOST) dictHead = { "Accept": "application/json", "X-ZUMO-APPLICATION": API_CODE, "Host": API_HOST } urlParam = urllib.urlencode( { "$filter": "text eq 'ABCD'" } ) oCHttp.request("GET", "/tables/" + table_name + "?" + urlParam, None, dictHead) oCRes = oCHttp.getresponse() print oCRes.status print oCRes.read() def update(table_name, id): oCHttp = httplib.HTTPSConnection(API_HOST) jsonData = json.dumps({"text": "EFGH"}) dictHead = { "Accept": "application/json", "X-ZUMO-APPLICATION": API_CODE, "Content-Type": "application/json", "Host": API_HOST, "Content-Length": len(jsonData) } oCHttp.request("PATCH", "/tables/" + table_name + "/" + id, jsonData, dictHead) oCRes = oCHttp.getresponse() print oCRes.status print oCRes.read() def delete(table_name, id): oCHttp = httplib.HTTPSConnection(API_HOST) dictHead = { "X-ZUMO-APPLICATION": API_CODE, "Host": API_HOST } oCHttp.request("DELETE", "/tables/" + table_name + "/" + id, None, dictHead) oCRes = oCHttp.getresponse() print oCRes.status print oCRes.read() insert("test_table", "1") select("test_table") update("test_table", "1") delete("test_table", "1")
■
どうという事のないコードですが、適当に記述するとこのような感じです。
Azure モバイル サービスの REST API リファレンス
http://msdn.microsoft.com/library/jj710108.aspx
上に記載したコードには select に関して単純なフィルターしか指定していませんが、色々な条件を指定する事が出来ます。
$filter の指定方法は、OData の URL Conventions に記載されています。