restfull rql版本功能
cubicweb-rqlcontroller的Python项目详细描述
摘要
为用户提供RQL读/写功能的控制器。
示例用法
此服务的用户必须对其终结点执行http post请求, 这是附加了 “rqlio/1.0”url路径。
发布的数据必须使用application/json mime类型,并包含 形式对(rql_string,rql_args),其中:
- rql_string是任何有效的rql查询,它可能包含 他们通常的形式
- rql_args是一个字典,其键是来自
rql_string,值可以是:
- 实际值
- 对上一个RQL查询结果的字符串引用,其中 假设引用的rql查询返回一行 单列rset;在这种情况下,字符串引用 必须是“\uu rxxx”,其中xxx是中rql查询的(基于0的)索引 json编码的查询列表。
http请求的响应(在没有错误的情况下)是 json编码的列表。它的长度是请求中的rql查询数, 每个元素都包含来自 相应的查询。
如果出现错误,带有reason键的json对象将解释 问题。
使用python请求的python客户端示例:
import requests import json args = [('INSERT CWUser U: U login %(l)s, U upassword %(p)s', {'l': 'Babar', 'p': 'cubicweb rulez & 42'}), ('INSERT CWGroup G: G name "pachyderms"', {}), ('SET U in_group G WHERE U eid %(u)s, G eid %(g)s', {'u': '__r0', 'g': '__r1'}) ] resp = requests.post('https://myinstance.example.com/rqlio/1.0'), data=json.dumps(args), headers={'Content-Type': 'application/json'}) assert resp.status_code == 200