On 26/08/2013 11:35, [email protected] wrote: > J'aimerai avoir un peu plus d'information sur proteus et sur ce qu'on > peut faire avec. > La page Pypy avec les 2/3 exemples est vraiment légère. > > Vu un dépêche sur linuxfr, j'ai cru comprendre qu'il y a des patron > activerecord et du xml-rpc, est ce qu'il n'y aurait pas une > documentation plus avancée avec l'api et les différents cas d'usage > distant, local, objet modifiable, obtenir les listes d'objets éditbles > .... ?
Il est possible d'interagir avec le serveur Tryton en utilisant le protocole XMLRPC ou JSONRPC. Les méthodes accessibles via ces deux protocoles sont identiques. La méthode system.db.listMethods permet d'obtenir la liste des appels disponibles. Le script bash ci-dessous permet d'afficher la version du serveur puis la liste des appels disponibles: > #!/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 Le format des requêtes JSONRPC est le suivant: { "id": identifiant de la requête (utilisée par la réponse) "method": nom de l'appel, "params": [ premier , second paramètre, troisième paramètre, ... contexte ] } Les appels RPC peuvent être catégorisés de deux manières: - les appels anonymes - les appels authentifiés Par exemple les appels "common.server.version" et "system.server.listMethods" sont anonymes. Pour s'authentifier il faut effectuer l'appel anonyme "common.server.login". Cet appel prend en paramètre l'identifiant d'un utilisateur et un mot de passe, il retourne en cas d'authentification réussie l'identifiant numérique de l'utilisateur et un cookie. Cet identifiant numérique et ce cookie sont utiliser pour les requêtes nécessitant d'être authentifié. Pour ces appels le premier paramètre est l'identifiant numérique et le second est le cookie. > { > "id": 8, > "method": "model.ir.model.read", > "params": > [ > 1, > "qdWWyL6guIJrnxTFGaWX7xc6o/BH+QnZbFcgU=", > [47, 71], > ["info", "model", "name", "module", "_timestamp"], > { > "language": "fr_FR", "locale": { > "date": "%d.%m.%Y", "thousands_sep": "", "grouping": [], > "decimal_point": "," > }, > "language_direction": "ltr", "groups": [1], "timezone": null > } > ] > } Pour manipuler les données les appels suivants sont disponibles: model.<modelname>.(search|read|create|write|delete|copy) -- Pierre-Louis
