User Application¶
Tryton provides a way to connect URL rules to an callable endpoint using the
decorator method route
of the trytond.application.app
instance. This
allows you to define a custom API based on HTTP that can be used to create a
specific user application.
The decorator takes as first parameter a string which follow the Rule Format of Werkzeug and as second parameter sequence of HTTP methods.
Example:
from trytond.application import app
@app.route('/hello', methods=['GET'])
def hello(request):
return 'Hello world'
The following converter is added by Tryton:
base64
: This converter accepts any Base64 string and transforms it into its corresponding bytes value.
Tryton also provides some wrappers in trytond.protocols.wrappers
to ease the
creation of such route.
set_max_request_size(size)
: change the default limit of the request to the size in bytes.
allow_null_origin
: allow requests which have theirOrigin
set tonull
.
with_pool
: which takes the first parameter as database name and replace it by the corresponding instance of the Pool.
with_transaction([readonly])
: which starts aTransaction
using the Pool fromwith_pool
. Ifreadonly
is not set, the transaction will not be readonly forPOST
,PUT
,DELETE
andPATCH
methods and readonly for all others.
user_application(name[, json])
: which set theTransaction.user
from theAuthorization
header using the typebearer
and a valid key for the named user application.
User Application Key¶
Tryton also provides a easy way to manage access to user application using
keys per named application.
A key is created with a POST
request on the URL
/<database_name>/user/application/
which returns the key. The request must
contain as data a json object with the keys:
user
: the user login
application
: the name of the application
After the creation, the key must be validated by the user from the preferences of a Tryton client.
A key can be deleted with a DELETE
request on the same URL
. The request
must contain as data a json object with the keys:
user
: the user login
key
: the key to delete
application
: the name of the application of the key