不止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去实现基于云开发的后台应用了。