On 26/08/2013 23:21, Steve Heyns wrote:
> I have tried to POSTing the following to localhost:8000/try
> 
> {method:"sever.version",id:1,params:[]}

Try:
{"method": "system.server.listMethods", "id": 1, "params": [null, null]}

> and I receive a 500 internal error as a response. But in the trytond log
> file there is no errors
[...]
> The tryton client works fine in this respect nut how does a trace translate 
> to something to be posted ? Like what does the following translate to ?
> 
> INFO:tryton.rpc:common.server.version(None, None)
> 
> I would assume that this is translated to :
> {method:"common.server.version",id:1,params:['','']}

Try:
{"method": "common.server.version", "id":1, "params": [null, null]}

You could use replace "server" by any string or use "common..version".


Here is a Bash script which use "common.server.version" and
"system.server.listMethods":

> #!/bin/bash
> DBNAME=demo2.8
> HOST=https://demo.tryton.org:8000
> 
> # Définition du contenu de la requête
> data=$(cat <<DATA
> {"id": 1, "method": "common.server.version", "params": [null, null]}
> DATA
> )
> 
> # Envoie de la requête au serveur Tryton
> wget -q -O - --no-http-keep-alive --post-data="$data" \
>     --header="Content-Type: text/json" --no-check-certificate \
>     $HOST
> 
> echo 
> 
> # Définition du contenu de la requête
> data=$(cat <<DATA
> {"id": 1, "method": "system.server.listMethods", "params": [null, null]}
> DATA
> )
> 
> # Envoie de la requête au serveur Tryton
> wget -q -O - --no-http-keep-alive --post-data="$data" \
>     --header="Content-Type: text/json" --no-check-certificate \
>     $HOST/$DBNAME
> 
> echo

The format of JSONRPC query is:
{
  "id": id of the request, used by response
  "method": name of the call,
  "params": [
    first parameter,
    second parameter,
    third parameter,
    ...
  ]
}


Requests can be categorized in two ways:
- anonymous calls
- authenticated calls

"common.server.version" and "system.server.listMethods" are anonymous.

In order to authenticate an user, you must perform the anonymous call
"common.server.login(username, password)". If successful, this call
returns user id and a cookie.

User id and cookie are first and second parameters of authenticated
calls. Context is the last parameter of authenticated call, it could be:
- an empty dict
- retrieved with authenticated call:
model.res.user.get_preferences(user_id, cookie, True, {})

An example: model "ir.model", read fields "info", "model", "name" and
"module" records 47 and 71:

> {
>   "id": 8,
>   "method": "model.ir.model.read",
>   "params":
>   [
>     1,
>     "qdWWyL6guIJrnxTFGaWX7xc6o/BH+QnZbFcgU=",
>     [47, 71],
>     ["info", "model", "name", "module"],
>     {
>       "language": "fr_FR", "locale": {
>         "date": "%d.%m.%Y", "thousands_sep": "", "grouping": [],
>         "decimal_point": ","
>       },
>       "language_direction": "ltr", "groups": [1], "timezone": null
>     }
>   ]
> }

In order to manipulate the data, the following calls are available:
model.<modelname>.(search|read|create|write|delete|copy)

-- 
Pierre-Louis

Reply via email to