/[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 780 by fmichon, Tue Nov 20 16:37:20 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      RewriteEngine On
39            RewriteCond %{REQUEST_URI} ^.*/openfoncier/services/(.*[^/])
40        RewriteRule ^(.*)$ /var/www/openfoncier/services/rest_entry.php [QSA,L]
41    
42    Dans la configuration de votre virtualhost penser à ce que les méthodes HTTP
43    nécessaires GET, PUT, POST, DELETE soient autorisées.
44    
45    Redémarrer Apache
46    -----------------
47    
48    Pour que les changements prennent effet il faut redémarrer le serveur Apache ::
49    
50  CONFIGURATION DE POSTGRESQL:      $ /etc/init.d/apache2 restart
51    
 Pendant l'installation de postgresql il faut changer le mot de passe d'utilisateur postgres:  
 user@machine$ sudo su - postges  
 postgres@machine$ psql template1  
 template1=# ALTER USER postgres with encrypted password 'postgres';  
52    
53  Parfois on doit aussi modifier le fichier pg_hba.conf pour que l'authentification se deroulle bien.  ============================================================
54    Utilisation des services REST avec curl en ligne de commande
55    ============================================================
56    
57    Pour envoyer une demande concernant les utilisateurs, avec curl et simple HTTP authetification, on fait :
58    
59    - en cas de GET :
60    $ curl --user <username> -v http://<server>/<path_to>/services/utilisateurs/<ID>
61    
62    Le '<ID>' doit etre remplace par l'ID d'un utilisateur, le '<server>' doit etre remplace par un server IP
63    ou un domain name, et '<path_to>' est le chemin, dans la hierarchie des fichiers, ou se trouve openfoncier.
64    
65    - en cas de POST :
66    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
67    
68  UTILISATION DU RESTLER:  - en cas de PUT:
69    $ curl --user <username> -v -H "Content-Type: application/json" -d '{"nom":"Changed_name"}' -X PUT  http://<server>/<path_to>/services/utilisateurs/<ID>
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 DELETE:
72  en disponibilité. Une exemple de ce fichier est donne ci-dessous :  $ curl --user <username> -v -X DELETE http://localhost/~mirna/head_openfoncier/services/utilisateurs/<ID>
73    
74  <?php  En cas d'encryptage SSL des donnes, curl doit etre utilise avec l'option E comme par exemple :
75      require_once '/path/to/restler.php';  $ 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>
     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 :  Le key_certificate.concat contient la cle avec le certificat colle a la fin de la cle.
78    
 http://127.0.0.1/index.php/myservices  
79    
80  Dans la ligne dessus la fonction get(.) de la classe Myservices est appele.  *****************************************
81    Description des services REST openFoncier
82    *****************************************
83    
84    =======================
85    Ressource 'maintenance'
86    =======================
87    
88    Méthode POST
89    ------------
90    
91    Synchronisation des utilisateurs via LDAP
92    *****************************************
93    
94    /services/maintenance
95    
96    {
97    "module": "user",
98    "data": "NA"
99    }
100    
101    
102    Traitement des retours de consultation périmés
103    **********************************************
104    
105    /services/maintenance
106    
107    {
108    "module": "consultation",
109    "data": "NA"
110    }
111    
112    
113    =========================
114    Ressource 'consultations'
115    =========================
116    
117    Méthode PUT
118    -----------
119    
120    Retour d'avis d'une consultation sans fichier
121    *********************************************
122    
123    /services/consultations/1
124    
125    {
126    "date_retour": "14/01/2012",
127    "avis": "Favorable"
128    }
129    
130    Retour d'avis d'une consultation avec fichier
131    *********************************************
132    
133    /services/consultations/1
134    
135    {
136    "date_retour": "14/01/2012",
137    "avis": "Favorable",
138    "fichier_base64": "JVBERi0xLjQKJcOkw7zDtsOfCjIgM",
139    "nom_fichier": "plop.pdf"
140    }
141    
142    ====================
143    Ressource 'messages'
144    ====================
145    
146    Méthode POST
147    ------------
148    
149    Message 1
150    *********
151    
152    /services/messages
153    
154    {
155    "type": "Mise à jour de complétude ERP ACC",
156    "date": "16/06/2014",
157    "emetteur": "John Doe",
158    "dossier_instruction": "12345",
159    "contenu":
160    {
161    "Complétude ERP ACC": "non",
162    "Motivation Complétude ERP ACC": "Lorem ipsum dolor sit amet..."
163    }
164    }
165    
166    Message 2
167    *********
168    
169    /services/messages
170    
171    {
172    "type": "Mise à jour de complétude ERP SECU",
173    "date": "16/06/2014",
174    "emetteur": "John Doe",
175    "dossier_instruction": "12345",
176    "contenu":
177    {
178    "Complétude ERP SECU": "oui",
179    "Motivation Complétude ERP SECU": "Lorem ipsum dolor sit amet..."
180    }
181    }
182    
183    Message 3
184    *********
185    
186    /services/messages
187    
188    {
189    "type": "Mise à jour de qualification",
190    "date": "16/06/2014",
191    "emetteur": "John Doe",
192    "dossier_instruction": "12345",
193    "contenu":
194    {
195    "Confirmation ERP": "oui",
196    "Type de dossier ERP": "Lorem ipsum dolor sit amet...",
197    "Catégorie de dossier ERP": "Lorem ipsum dolor sit amet..."
198    }
199    }
200    
201    Message 4
202    *********
203    
204    /services/messages
205    
206    {
207    "type": "Dossier à enjeux ERP",
208    "date": "16/06/2014",
209    "emetteur": "John Doe",
210    "dossier_instruction": "12345",
211    "contenu":
212    {
213    "Dossier à enjeux ERP" : "oui"
214    }
215    }
216    
217    ================================
218    Ressource 'dossier_autorisation'
219    ================================
220    
221    Méthode PUT
222    -----------
223    
224    /services/dossier_autorisation
225    
226    
227    Méthode GET
228    -----------
229    
230    /services/dossier_autorisation
231    

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26