Template: ===== classe/method ===== ==== Description ==== ==== URL ==== ==== Paramètres ==== ==== Retour ==== ==== Exemples ==== ======= Web Services EzGED ======= Les web services EzGED constituent l'API ouverte permettant de s'interfacer avec EzGED. ====== Format de retour ====== Le serveur de service, écrit en python, sert le résultat au format XML. Dans le cas où vous voudriez obtenir le résultat sous forme JSON rendez-vous sur la page [[dev:api:webservices:json | Web Services JSON ]] ====== Liste des services ====== ===== sec/authenticate ===== ==== Description ==== Permet de s'authentifier auprès du serveur EzGED et d'obtenir un id de session. ==== URL ==== http://:/sec/authenticate/ ==== Paramètres ==== * **login** //requis// - Le nom de compte avec lequel s'authentifier. * **pwd** //requis// - Le mot de passe haché en md5. * **domain** - Nom de domaine du serveur LDAP auprès duquel on doit s'identifier. Requis si le paramètre d'instance auth-w2kad.logins est configuré. * **realip** - Adresse IP à comparée avec le paramètre [[|SECUSR_HOST]] s'il est définit. ==== Retour ==== L'id de session est ==== Exemples ==== Appel http://localhost:8080/sec/authenticate/?realip=aaa.bbb.ccc.ddd&login=admin&pwd=21232f297a57a5a743894a0e4a801fc3 Retour ===== sec/authenticatebysession ===== ==== Description ==== Permet de s'authentifier sur le serveur GED en fournissant un id de session. ==== URL ==== http://:/sec/authenticatebysession/ ==== Paramètres ==== * **sessionid** //requis// Id de session EzGED. ==== Retour ==== L'id de session ainsi que les paramètres utilisateurs. ==== Exemples ==== ===== doctbl/insertrow ===== ==== Description ==== Insère une nouvelle ligne dans une table. ==== URL ==== ==== Paramètres ==== * **sessionid** //requis// ID de session EzGED. * **fields[i]** //// Nb: i est un indice de tableau (débute à 0). Le service acceptera aussi que soient envoyés les différents paramètres fields et values sans indices. Il faudra alors veillé à ce que l'ordre des valeurs corresponde à celui des champs ! ==== Retour ==== ==== Exemples ==== Appel du service sans indicer les paramètres : http://localhost:8080/doctbl/insertrow/?sessionid=1217328858&tfqn=courriers&fields=COURRIERS_OBJET&values=MAJ%20EzGED&fields=COURRIERS_FROM&values=florian Le même appel si on utilise les indices (l'ordre d'écriture des paramètres n'est plus important) : http://localhost:8080/doctbl/insertrow/?sessionid=1217328858&tfqn=courriers&fields[0]=COURRIERS_OBJET&values[1]=florian&fields[1]=COURRIERS_FROM&values[0]=MAJ%20EzGED ===== fsfile/multiloc ===== ==== Description ==== Retourne les informations d'un fichier. ==== URL ==== http://:/fsfile/multiloc?sessionid=&fsfileid= ==== Paramètres ==== * **sessionid** //requis// ID de session EzGED. * **fsfileid** //requis// ID du fichier dans EzGED. ==== Exemples ==== Avec l'appel suivant http://localhost:8080/fsfile/multiloc?sessionid=409492697&fsfileid=12778 J'obtiens le retour suivant Retour dans le cas d'un fichier non trouvé dans le stockage: ===== doctbl/deleterowwfiles ===== ==== Description ==== Supprime une fiche descriptive. Nb: Ne supprime pas les fichiers liés. ==== URL ==== http://:/doctbl/deleterowwfiles?sessionid=&tfqn=&field_ID=&value_ID= ==== Paramètres ==== * **sessionid** //requis// - ID de session EzgED. * **tfqn** //requis// - Nom de la table sur laquelle se trouve la fiche à supprimer. * **field_ID** //requis// - Nom de champ de la clé primaire. * **value_ID** //requis// - Valeur de la clé primaire (i.e le RSID ou encore ID de la fiche descriptive). ==== Exemples ==== Appel: http://localhost:8080/doctbl/deleterowwfiles/?sessionid=409492697&tfqn=facture&field_ID=FACTURE_ID&value_ID=3 Retour : Si un des fichiers lié à la fiche descriptive est utilisé on aura le retour suivant: ===== Notes ===== En cas d'appel d'un web service avec un id de session qui n'est plus valide, le retour suivant sera obtenu ====== Tutoriaux Web Service ====== ===== Sans Proxy ===== Les appels sont directement fait sur le serveur de service python. ==== S'authentifier ==== On souhaite s'authentifier avec le login patrick et le mot de passe associé ==== Créer une nouvelle fiche ==== Supposons que nous ayons une table //courriers// ayant pour champs COURRIER_ID (la clé primaire), COURRIER_OBJET et COURRIER_EXPEDITEUR. Si nous voulons ajouter une ligne et affecter les valeurs comme suit : COURRIER_OBJET : MAJ EzGED disponible\\ COURRIER_EXPEDITEUR : EzDEV Il suffit alors d'appeler le web service doctbl/insertrow comme suit http://localhost:8080/doctbl/insertrow/?sessionid=187655380&tfqn=courriers&fields[0]=COURRIERS_OBJET&values[0]=MAJ EzGED disponible&fields[1]=COURRIERS_FROM&values[1]=florian Le web service nous renvoi l'id de la nouvelle ligne : L'élement qui nous intéresse est le suivant, dont l'attribut value contient la clé primaire de la fiche nouvellement créée. Cette clé nous permettra, lors de l'étape suivante, de rattacher un fichier à cette fiche descriptive. ==== Ajouter des fichiers à une fiche ==== ==== Envoyer un fichier sur le serveur ==== La première chose à faire est d'uploader le fichier sur le serveur EzGED. Pour cela votre client doit envoyer une requête HTTP de type POST sur le serveur web via l'URL suivante : http://localhost/ezged3/data/pupload.php?mode=archive Le serveur renvoi la réponse au format JSON. { "success":true, "chunkpart":false, "message":"File successfully uploaded.", "filePath":"C:\\nchp\\var\\spool\\ezged\\instance\/enqueued\/albatros.pdf" } ==== Lier un fichier à une fiche ==== Nous avons tous les éléments nécessaires : Le chemin : **C:\\nchp\\var\\spool\\ezged\\instance\/enqueued\/albatros.pdf**\\ Le rsid : **1009**\\ La table : **test**\\ La session : **743409468**\\ Il suffit alors d'appeler le web service d'ajout de pages à un docpak : http://localhost:8080/docpak/addpages/?sessionid=743409468&tfqn=test&rsid=1009&file=C:\\nchp\\var\\spool\\ezged\\instance\/enqueued\/albatros.pdf&start=-1 Le retour est au format XML : Ceci nous indique qu'un travail a bien été créé et que son identifiant est 8979. ==== Surveiller l'avancée du travail ==== http://localhost:8080/jobqueue/load/?sessionid=743409468&jobqueueid=8979 Ci-dessous une partie (seulement les infos les plus pertinentes pour nous) de la réponse : L'élément JOBQUEUE_STATUS nous donne le status du travail. ^ Code status | Libellé | Détails ^ | 0 | NORMAL | Le travail est en attente d'être traité par le serveur | | 1 | EN FILE | Le travail est en cours d'exécution | | 2 | FINI PURGEABLE | Le travail est terminé, prêt à être nettoyé | | 4 | ERREUR | Le travail est en erreur |