访问tryton模块的rest api
tryton-restful的Python项目详细描述
tryton模型的rest api
安装
从python包索引安装:
pip install tryton-restful
用法
在安装时,您应该能够使用 运行本地开发服务器。
tryton_restful --help Usage: tryton_restful [OPTIONS] HOST PORT Runs the application on a local development server. Options: -c, --config TEXT Path to tryton configuration file --debug --threaded / --not-threaded should the process handle each request in a separate thread? --help Show this message and exit.
您可以通过以下方式运行服务器:
tryton_restful -c /path/to/tryton/config
提示
还可以使用环境变量指定配置文件。
导出tryton-config=/path/to/tryton/config
rest api端点:
/<;dbname>;/登录
POST | Expects login and password as form data and returns a JSON of user ID and session to be used for subsequent requests |
importrequestsimportjsonDATABASE_NAME='rest'BASE_PATH='http://localhost:9000/'+DATABASE_NAMElogin_result=requests.post(BASE_PATH+'/login',data={'login':'admin','password':'admin'})tryton_session=login_result.json()printtryton_session
{u'session': u'966689963c0a4a939cb326c1451b0fe9', u'id': 1}
/<;dbname>;/model/<;model.name>;
GET | Return a list of records (Just the ID and rec_name) Params:
|
s=requests.Session()s.auth=(tryton_session['id'],tryton_session['session'])# Use the session and get the list of usersprints.get(BASE_PATH+'/model/res.user').json()
{u'items': [{u'rec_name': u'Administrator', u'id': 1}]}
POST | Creates one or more records in the given model |
# Create a new userheaders={'content-type':'application/json'}values=[{'name':'Thomas','login':'thomas','password':'password'},{'name':'Alfred','login':'alfred','password':'somethingelse'},]users=s.post(BASE_PATH+'/model/res.user',data=json.dumps(values),headers=headers).json()printusers
{u'items': [{u'rec_name': u'Thomas', u'id': 3}, {u'rec_name': u'Alfred', u'id': 4}]}
DELETE | Delete all records in the given model |
/<;dbname>;/model/<;model.name>;/<;id>;
GET | Return the details of the given record Params:
|
# Get full details of the first userprints.get(BASE_PATH+'/model/res.user/1').json()
{u'create_date': u'Sat, 10 May 2014 08:51:16 GMT', ....}
# Get only a limited set of fieldsuser_url=BASE_PATH+'/model/res.user/1'prints.get(user_url+'?fields_names=name&fields_names=email').json()
{u'email': None, u'name': u'Administrator', u'id': 1}
PUT | Update the given resource |
# Change the email of the userheaders={'content-type':'application/json'}user_data=s.put(user_url,data=json.dumps({'email':'admin@example.com'}),headers=headers).json()printuser_data['email']
admin@example.com
DELETE | Delete the given record |
# get a new list of all usersprints.get(BASE_PATH+'/model/res.user').json()
{u'items': [{u'rec_name': u'Administrator', u'id': 1}, {u'rec_name': u'Thomas', u'id': 3}, {u'rec_name': u'Alfred', u'id': 4}]}
# delete user Alfred with ID 4prints.delete(BASE_PATH+'/model/res.user/4')
<Response [205]>
# get a new list of all usersprints.get(BASE_PATH+'/model/res.user').json()
{u'items': [{u'rec_name': u'Administrator', u'id': 1}, {u'rec_name': u'Thomas', u'id': 3}]}