不止python,你可以利用任何語言那實現通過http請求來操作你自己的小程序云數據庫了
背景
也是在最近吧,小程序更新了云開發 HTTP API 文檔,提供了小程序外訪問云開發資源的能力,使用 HTTP API 開發者可在已有服務器上訪問云資源,實現與云開發的互通。
原本云數據庫還是相對封閉的,只能通過自己的小程序或者云函數來進行訪問,而現在,你只要調用官方提供的接口就能實現對云函數的增刪改查了。
截圖1
這里通過python作為演示來進行簡單的測試,當然你也可以使用java,php等任何你熟悉的語言進行編碼。
其實實現起來還是比較簡單的,通過小程序的APPID和APPSECRET來獲取ACCESS_TOKEN,獲取到調用憑證之后就可以根據文檔提供的API對云數據庫進行操作了。
首先我們來獲取ACCESS_TOKEN,相關python代碼如下:'''獲取小程序token'''def get_access_token(): url='{0}cgi-bin/token?grant_type=client_credential&appid={1}&secret={2}'.format(WECHAT_URL,APP_ID,APP_SECRET) response =requests.get(url) result=response.json() print(result) return result['access_token']
在云數據庫中新增一個集合,代碼如下:'''新增集合'''def add_collection(accessToken): url='{0}tcb/databasecollectionadd?access_token={1}'.format(WECHAT_URL,accessToken) data={ "env":ENV, "collection_name":TEST_COLLECTION } response = requests.post(url,data=json.dumps(data),headers=HEADER) print('1.新增集合:'+response.text)
在集合中新增一筆數據,代碼如下:'''新增數據'''def add_data(accessToken): url='{0}tcb/databaseadd?access_token={1}'.format(WECHAT_URL,accessToken) query=''' db.collection("test_collection").add({ data:{ key:1, value:"2345" } }) '''
data={ "env":ENV, "query":query } response = requests.post(url,data=json.dumps(data),headers=HEADER) print('2.新增數據:'+response.text)
查詢某個集合中的數據,代碼如下:'''查詢數據'''def query_data(accessToken): url='{0}tcb/databasequery?access_token={1}'.format(WECHAT_URL,accessToken) query=''' db.collection("test_collection").limit(10).skip(1).get() '''
data={ "env":ENV, "query":query } response = requests.post(url,data=json.dumps(data),headers=HEADER) print('3.查詢數據:'+response.text) result=response.json() resultValue =json.loads(result['data'][0]) return resultValue['_id']
刪除該集合中的某筆數據,代碼如下:'''刪除數據'''def delete_data(accessToken,id): url='{0}tcb/databasedelete?access_token={1}'.format(WECHAT_URL,accessToken) query='''db.collection("test_collection").doc("{0}").remove()'''.format(id)
data={ "env":ENV, "query":query } response = requests.post(url,data=json.dumps(data),headers=HEADER) print('4.刪除數據:'+response.text)
刪除云數據庫中某個集合,代碼如下'''刪除集合'''def delete_collection(accessToken): url='{0}tcb/databasecollectiondelete?access_token={1}'.format(WECHAT_URL,accessToken) data={ "env":ENV, "collection_name":TEST_COLLECTION } response = requests.post(url,data=json.dumps(data),headers=HEADER) print('5.刪除集合:'+response.text)
是不是感覺挺簡單的,就是調用相應的接口實現對云數據庫相應的操作。
官方開放了除小程序外訪問云數據庫的權限,使得每個基于云數據庫的小程序不再是一座座鼓搗了。我們可以用該API去實現基于云開發的后臺應用了。