REST API to access Tryton modules
Project description
A REST API for Tryton Models
Installation
Install from python package index:
pip install tryton-restful
Usage
On installation you should be able to use the tryton_restful script which runs a local development server.
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.
You can run the server by:
tryton_restful -c /path/to/tryton/config
Rest API Endpoints:
/<dbname>/login
POST |
Expects login and password as form data and returns a JSON of user ID and session to be used for subsequent requests |
import requests
import json
DATABASE_NAME = 'rest'
BASE_PATH = 'http://localhost:9000/' + DATABASE_NAME
login_result = requests.post(BASE_PATH + '/login', data={'login': 'admin', 'password': 'admin'})
tryton_session = login_result.json()
print tryton_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 users
print s.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 user
headers = {'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()
print users
{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 user
print s.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 fields
user_url = BASE_PATH + '/model/res.user/1'
print s.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 user
headers = {'content-type': 'application/json'}
user_data = s.put(user_url, data=json.dumps({'email': 'admin@example.com'}), headers=headers).json()
print user_data['email']
admin@example.com
DELETE |
Delete the given record |
# get a new list of all users
print s.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 4
print s.delete(BASE_PATH + '/model/res.user/4')
<Response [205]>
# get a new list of all users
print s.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}]}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file tryton-restful-0.1.tar.gz
.
File metadata
- Download URL: tryton-restful-0.1.tar.gz
- Upload date:
- Size: 6.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 30dae8d6fc282b070b9a4d1c9f7e1c1d7510b6f98c2350cfbe1021dc78ce5325 |
|
MD5 | 574f5cf924683969aee6c8df74599585 |
|
BLAKE2b-256 | 9f3edd488f655489e2b935485f53b16aa491342072ae091bff13935c6ebbde32 |