/[openfoncier]/trunk/services/README.txt
ViewVC logotype

Diff of /trunk/services/README.txt

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 515 by mlimic, Wed Oct 17 16:22:13 2012 UTC revision 875 by fmichon, Thu Nov 29 00:12:57 2012 UTC
# Line 1  Line 1 
1    /**
2     * Ce fichier permet de décrire l'utilisation des webservices pour l'application
3     * openFoncier.
4     *
5     * @package openfoncier
6     * @version SVN : $Id$
7     *
8     * @todo XXX Reprendre la rubrique "Utilisation des services REST avec curl en
9     * ligne de commande" et détailler la rubrique "Description des services REST
10     * openFoncier"
11     */
12    
13    #############
14    Services REST
15    #############
16    
17  CONFIGURATION D'APACHE POUR UTILISER RESTLER:  *********************************
18    Installation, paramétrage et test
19    *********************************
20    
21  Pour utiliser RESTLER il faut que dans le serveur Apache module rewrite est activé.  ============================================
22  Pour le faire on crée un lien symbolique de dossier mond-enabled vers dossier mods-available.  Configuration d'Apache pour utiliser RESTLER
23    ============================================
24    
25  $ ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load  Activer le mod_rewrite Apache
26    -----------------------------
27    
28  Ensuite, il faut ajouter le suivant dans le fichier /etc/apache2/sites-enabled/000-default :  Le module Apache mod_rewrite est un module qui permet la réécriture des URLs.
29    Pour utiliser RESTLER il faut que ce module soit activé. Pour ce faire ::
30    
31      #<Directory "/home/<path_to>/services">      $ a2enmod rewrite
         RewriteEngine On  
         RewriteRule ^(.*)$ /<path_to>/services/rest_entry.php [QSA,L]  
     #</Directory>  
32    
33  Le chemin donné dans la balise Directory doit contenir le fichier qui crée une instance de RESTLER  Paramétrer le virtualhost
34  et ajoute les services au RESTLER. Dans notre cas ce fichier s'appele index.php.  -------------------------
35    
36  Pour que les changements prennent l'effet il faut redemmarer le serveur Apache :  Ajouter les lignes suivantes dans le paramétrage du virtualhost souhaité ::
37    
38  $ sudo service apache2 restart  Pour n'avoir pas du besoin d'ecrire "rest_entry.php" dans l'URL appelle depuis ERP, utilisez les
39    trois lignes dessous:
40    
41            RewriteEngine On
42            RewriteCond %{REQUEST_URI} ^.*/<path_to>/services/(.*[^/])
43            RewriteRule ^(.*)/services/(.*)$ /<path_to>/services/rest_entry.php/$2 [QSA,L]
44    
45    Dans la configuration de votre virtualhost penser à ce que les méthodes HTTP
46    nécessaires GET, PUT, POST, DELETE soient autorisées.
47    
48    Redémarrer Apache
49    -----------------
50    
51  CONFIGURATION DE POSTGRESQL:  Pour que les changements prennent effet il faut redémarrer le serveur Apache ::
52    
53  Pendant l'installation de postgresql il faut changer le mot de passe d'utilisateur postgres:      $ /etc/init.d/apache2 restart
 user@machine$ sudo su - postges  
 postgres@machine$ psql template1  
 template1=# ALTER USER postgres with encrypted password 'postgres';  
54    
 Parfois on doit aussi modifier le fichier pg_hba.conf pour que l'authentification se deroulle bien.  
55    
56    ============================================================
57    Utilisation des services REST avec curl en ligne de commande
58    ============================================================
59    
60    Pour envoyer une demande concernant les utilisateurs, avec curl et simple HTTP authetification, on fait :
61    
62    - en cas de GET :
63    $ curl --user <username> -v http://<server>/<path_to>/services/utilisateurs/<ID>
64    
65    Le '<ID>' doit etre remplace par l'ID d'un utilisateur, le '<server>' doit etre remplace par un server IP
66    ou un domain name, et '<path_to>' est le chemin, dans la hierarchie des fichiers, ou se trouve openfoncier.
67    
68  UTILISATION DU RESTLER:  - en cas de POST :
69    curl --user <username> -v -H "Content-Type: application/json" -d '{"nom":"Thierry", "email":"[email protected]","login":"tehierry","pwd":"password","om_profil":"5","om_collectivite":"1","om_type":"db_type"}' -X POST  http://<server>/<path_to>/services/utilisateurs
70    
71  Il faut créer fichier index.php qui crée une instance de RESTLER et met le API d'une classe PHP  - en cas de PUT:
72  en disponibilité. Une exemple de ce fichier est donne ci-dessous :  $ curl --user <username> -v -H "Content-Type: application/json" -d '{"nom":"Changed_name"}' -X PUT  http://<server>/<path_to>/services/utilisateurs/<ID>
73    
74  <?php  - en cas de DELETE:
75      require_once '/path/to/restler.php';  $ curl --user <username> -v -X DELETE http://localhost/~mirna/head_openfoncier/services/utilisateurs/<ID>
     require_once './myservices.php';  
     $r = new Restler();  
     $r->addAPIClass('Myservices'); // class Myservices is defined inside of file myservices.php  
     $r->handle();  
 ?>  
76    
77  Pour envoyer une demande au Myservices classe par RESTLER on utilise :  En cas d'encryptage SSL des donnes, curl doit etre utilise avec l'option E comme par exemple :
78    $ curl -E /<path_to>/key_certificate.concat --cacert /<path_to>/self_signed_sertificate.crt -k -v -H --user <username> -v https://<server>/<path_to>/services/utilisateurs/<ID>
79    
80  http://127.0.0.1/index.php/myservices  Le key_certificate.concat contient la cle avec le certificat colle a la fin de la cle.
81    
82  Dans la ligne dessus la fonction get(.) de la classe Myservices est appele.  
83    *****************************************
84    Description des services REST openFoncier
85    *****************************************
86    
87    =======================
88    Ressource 'maintenance'
89    =======================
90    
91    Méthode POST
92    ------------
93    
94    Synchronisation des utilisateurs via LDAP
95    *****************************************
96    
97    /services/maintenance
98    
99    {
100    "module": "user",
101    "data": "NA"
102    }
103    
104    
105    Traitement des retours de consultation périmés
106    **********************************************
107    
108    /services/maintenance
109    
110    {
111    "module": "consultation",
112    "data": "NA"
113    }
114    
115    
116    =========================
117    Ressource 'consultations'
118    =========================
119    
120    Méthode PUT
121    -----------
122    
123    Retour d'avis d'une consultation sans fichier
124    *********************************************
125    
126    /services/consultations/1
127    
128    {
129    "date_retour": "14/01/2012",
130    "avis": "Favorable"
131    }
132    
133    Retour d'avis d'une consultation avec fichier
134    *********************************************
135    
136    /services/consultations/1
137    
138    {
139    "date_retour": "14/01/2012",
140    "avis": "Favorable",
141    "fichier_base64": "JVBERi0xLjQKJcOkw7zDtsOfCjIgM",
142    "nom_fichier": "plop.pdf"
143    }
144    
145    ====================
146    Ressource 'messages'
147    ====================
148    
149    Méthode POST
150    ------------
151    
152    Message 1
153    *********
154    
155    /services/messages
156    
157    {
158    "type": "Mise à jour de complétude ERP ACC",
159    "date": "16/06/2014 14:12",
160    "emetteur": "John Doe",
161    "dossier_instruction": "PD12R0001",
162    "contenu":
163    {
164    "Complétude ERP ACC": "non",
165    "Motivation Complétude ERP ACC": "Lorem ipsum dolor sit amet..."
166    }
167    }
168    
169    Message 2
170    *********
171    
172    /services/messages
173    
174    {
175    "type": "Mise à jour de complétude ERP SECU",
176    "date": "16/06/2014 14:12",
177    "emetteur": "John Doe",
178    "dossier_instruction": "PD12R0001",
179    "contenu":
180    {
181    "Complétude ERP SECU": "oui",
182    "Motivation Complétude ERP SECU": "Lorem ipsum dolor sit amet..."
183    }
184    }
185    
186    Message 3
187    *********
188    
189    /services/messages
190    
191    {
192    "type": "Mise à jour de qualification",
193    "date": "16/06/2014 14:12",
194    "emetteur": "John Doe",
195    "dossier_instruction": "PD12R0001",
196    "contenu":
197    {
198    "Confirmation ERP": "oui",
199    "Type de dossier ERP": "Lorem ipsum dolor sit amet...",
200    "Catégorie de dossier ERP": "Lorem ipsum dolor sit amet..."
201    }
202    }
203    
204    Message 4
205    *********
206    
207    /services/messages
208    
209    {
210    "type": "Dossier à enjeux ERP",
211    "date": "16/06/2014 14:12",
212    "emetteur": "John Doe",
213    "dossier_instruction": "PD12R0001",
214    "contenu":
215    {
216    "Dossier à enjeux ERP" : "oui"
217    }
218    }
219    
220    ================================
221    Ressource 'dossier_autorisation'
222    ================================
223    
224    Méthode PUT
225    -----------
226    
227    /services/dossier_autorisation
228    
229    
230    Méthode GET
231    -----------
232    
233    /services/dossier_autorisation
234    

Legend:
Removed from v.515  
changed lines
  Added in v.875

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26