不止python,你可以利用任何語言那實(shí)現(xiàn)通過http請(qǐng)求來操作你自己的小程序云數(shù)據(jù)庫了
背景
也是在最近吧,小程序更新了云開發(fā) HTTP API 文檔,提供了小程序外訪問云開發(fā)資源的能力,使用 HTTP API 開發(fā)者可在已有服務(wù)器上訪問云資源,實(shí)現(xiàn)與云開發(fā)的互通。
原本云數(shù)據(jù)庫還是相對(duì)封閉的,只能通過自己的小程序或者云函數(shù)來進(jìn)行訪問,而現(xiàn)在,你只要調(diào)用官方提供的接口就能實(shí)現(xiàn)對(duì)云函數(shù)的增刪改查了。
截圖1
這里通過python
作為演示來進(jìn)行簡(jiǎn)單的測(cè)試,當(dāng)然你也可以使用java
,php
等任何你熟悉的語言進(jìn)行編碼。
其實(shí)實(shí)現(xiàn)起來還是比較簡(jiǎn)單的,通過小程序的APPID
和APPSECRET
來獲取ACCESS_TOKEN
,獲取到調(diào)用憑證之后就可以根據(jù)文檔提供的API對(duì)云數(shù)據(jù)庫進(jìn)行操作了。
首先我們來獲取ACCESS_TOKEN
,相關(guān)python代碼如下:
在云數(shù)據(jù)庫中新增一個(gè)集合,代碼如下:
'''新增集合'''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)
在集合中新增一筆數(shù)據(jù),代碼如下:
查詢某個(gè)集合中的數(shù)據(jù),代碼如下:
'''查詢數(shù)據(jù)'''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.查詢數(shù)據(jù):'+response.text) result=response.json() resultValue =json.loads(result['data'][0]) return resultValue['_id']
刪除該集合中的某筆數(shù)據(jù),代碼如下:
刪除云數(shù)據(jù)庫中某個(gè)集合,代碼如下
'''刪除集合'''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)
是不是感覺挺簡(jiǎn)單的,就是調(diào)用相應(yīng)的接口實(shí)現(xiàn)對(duì)云數(shù)據(jù)庫相應(yīng)的操作。
官方開放了除小程序外訪問云數(shù)據(jù)庫的權(quán)限,使得每個(gè)基于云數(shù)據(jù)庫的小程序不再是一座座鼓搗了。我們可以用該API去實(shí)現(xiàn)基于云開發(fā)的后臺(tái)應(yīng)用了。
聯(lián)系客服