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

Contents of /trunk/services/README.txt

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3730 - (show annotations)
Fri Mar 18 11:50:26 2016 UTC (8 years, 10 months ago) by mbroquet
File MIME type: text/plain
File size: 14648 byte(s)
Actualisation du trunk
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: README.txt 2757 2014-02-19 17:46:10Z softime $
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 *********************************
18 Installation, paramétrage et test
19 *********************************
20
21 ============================================
22 Configuration d'Apache pour utiliser RESTLER
23 ============================================
24
25 Activer le mod_rewrite Apache
26 -----------------------------
27
28 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 $ a2enmod rewrite
32
33 Paramétrer le virtualhost
34 -------------------------
35
36 Ajouter les lignes suivantes dans le paramétrage du virtualhost souhaité ::
37
38 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 Pour que les changements prennent effet il faut redémarrer le serveur Apache ::
52
53 $ /etc/init.d/apache2 restart
54
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 - 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 - en cas de PUT:
72 $ curl --user <username> -v -H "Content-Type: application/json" -d '{"nom":"Changed_name"}' -X PUT http://<server>/<path_to>/services/utilisateurs/<ID>
73
74 - en cas de DELETE:
75 $ curl --user <username> -v -X DELETE http://localhost/~mirna/head_openfoncier/services/utilisateurs/<ID>
76
77 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 Le key_certificate.concat contient la cle avec le certificat colle a la fin de la cle.
81
82
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 }
102
103
104 Traitement des retours de consultation périmés
105 **********************************************
106
107 /services/maintenance
108
109 {
110 "module": "consultation"
111 }
112
113 Traitement des événements suivant tacite
114 ****************************************
115
116 /services/maintenance
117
118 {
119 "module": "instruction"
120 }
121
122 Importation des documents numérisés
123 ***********************************
124
125 /services/maintenance
126
127 {
128 "module": "import",
129 "data":
130 {
131 //Ces deux paramètres sont facultatifs
132 "Todo" : "chemin_dossier_source" ou "" pour utiliser le chemin dans la configuration,
133 "Done" : "chemin_dossier_destination" ou "" pour utiliser le chemin dans la configuration
134 }
135 }
136
137 Purge des documents numérisés
138 *****************************
139
140 /services/maintenance
141
142 {
143 "module": "purge",
144 "data":
145 {
146 //Ces deux paramètres sont facultatifs
147 "dossier": "chemin_dossier" ou "" pour utiliser le chemin dans la configuration,
148 "nombre_de_jour": nombre_de_jour ou "" pour n'imposer aucunes limites
149 }
150 }
151
152 Mise à jour de l'état des dossiers d'autorisations périmés
153 **********************************************************
154
155 /services/maintenance
156
157 {
158 "module": "update_dossier_autorisation"
159 }
160
161 Synchronisation des contraintes depuis le SIG
162 *********************************************
163
164 /services/maintenance
165
166 {
167 "module": "contrainte"
168 }
169
170 =========================
171 Ressource 'consultations'
172 =========================
173
174 Méthode PUT
175 -----------
176
177 Retour d'avis d'une consultation sans fichier
178 *********************************************
179
180 /services/consultations/1
181
182 {
183 "date_retour": "14/01/2012",
184 "avis": "Favorable"
185 }
186
187 Retour d'avis d'une consultation avec fichier
188 *********************************************
189
190 /services/consultations/1
191
192 {
193 "date_retour": "14/01/2012",
194 "avis": "Favorable",
195 "fichier_base64": "JVBERi0xLjQKJcOkw7zDtsOfCjIgM",
196 "nom_fichier": "plop.pdf"
197 }
198
199 ===================
200 Ressource 'arretes'
201 ===================
202
203 Méthode PUT
204 -----------
205
206 Retour d'un numéro d'arrêté
207 ***************************
208
209 /services/arretes
210
211 {
212 "numero_arrete": "21321654",
213 "numero_dossier": "AZ0130551200001P0",
214 "etat_transaction": "true",
215 "detail_erreur": ""
216 }
217
218 ====================
219 Ressource 'messages'
220 ====================
221
222 Méthode POST
223 ------------
224
225 Message 1
226 *********
227
228 /services/messages
229
230 {
231 "type": "Mise à jour de complétude ERP ACC",
232 "date": "16/06/2014 14:12",
233 "emetteur": "John Doe",
234 "dossier_instruction": "PD12R0001",
235 "contenu":
236 {
237 "Complétude ERP ACC": "non",
238 "Motivation Complétude ERP ACC": "Lorem ipsum dolor sit amet..."
239 }
240 }
241
242 Message 2
243 *********
244
245 /services/messages
246
247 {
248 "type": "Mise à jour de complétude ERP SECU",
249 "date": "16/06/2014 14:12",
250 "emetteur": "John Doe",
251 "dossier_instruction": "PD12R0001",
252 "contenu":
253 {
254 "Complétude ERP SECU": "oui",
255 "Motivation Complétude ERP SECU": "Lorem ipsum dolor sit amet..."
256 }
257 }
258
259 Message 3
260 *********
261
262 /services/messages
263
264 {
265 "type": "Mise à jour de qualification",
266 "date": "16/06/2014 14:12",
267 "emetteur": "John Doe",
268 "dossier_instruction": "PD12R0001",
269 "contenu":
270 {
271 "Confirmation ERP": "oui",
272 "Type de dossier ERP": "Lorem ipsum dolor sit amet...",
273 "Catégorie de dossier ERP": "Lorem ipsum dolor sit amet..."
274 }
275 }
276
277 Message 4
278 *********
279
280 /services/messages
281
282 {
283 "type": "Dossier à enjeux ERP",
284 "date": "16/06/2014 14:12",
285 "emetteur": "John Doe",
286 "dossier_instruction": "PD12R0001",
287 "contenu":
288 {
289 "Dossier à enjeux ERP" : "oui"
290 }
291 }
292
293 ================================
294 Ressource 'dossier_autorisation'
295 ================================
296
297 Méthode PUT
298 -----------
299
300 Mise à jour du dossier d'autorisation (numero_erp)
301 **************************************************
302
303 /services/dossier_autorisation/2
304
305 {
306 "numero_erp":"12345",
307 "avis":"some"
308 }
309
310
311 ERP ouvert (erp_ouvert)
312 ***********************
313
314 /services/dossier_autorisation/2
315
316 {
317 "erp_ouvert":"12345",
318 "date_arrete":"some"
319 }
320
321
322 Arrêté d'un dossier DAT effectué
323 ********************************
324
325 /services/dossier_autorisation/2
326
327 {
328 "arrete_effectue":"some",
329 "date_arrete":"04/06/2014"
330 }
331
332
333 Méthode GET
334 -----------
335
336 /services/dossier_autorisation/2
337
338 ================================
339 Ressource 'dossier_instruction'
340 ================================
341
342 Méthode PUT
343 -----------
344
345 Mise à jour du dossier d'instruction AT
346 ***************************************
347
348 /services/dossier_instructions/2
349
350 {
351 "message":"complet",
352 "date":"27/10/2013"
353 }
354
355 #################
356 Services RabbitMQ
357 #################
358
359 ************************************************************************
360 Description des messages sortants d'openFoncier vers ERP et du RAbbitMQ
361 ************************************************************************
362 Pour envoyer des messages on doit installer RabbitMQ:
363
364 ~$ sudo aptitude install rabbitmq-server
365
366 Pour envoyer des messages depuis un script PHP aa RabbitMQ (ecrit en Python)
367 on utilise la librairie php-amqplib.
368 Par convenance, cette librairie est incluse dans cette distribution.
369
370 Afin d'être en mesure de recevoir les messages envoyés, il faut lancer le listener.
371 Se placer dans le dossier outgoing du dossier services et lancer la commande suivante :
372
373 ~$ ./messagereceiverlistener
374
375 Pour que les messages partent vers le logiciel ERP il faut mettre l'URL
376 de la resource services/messages d'ERP dans la variable $ERP_URL_MESSAGES
377 qui se trouve dans le fichier dyn/services.inc.php
378
379 Les test simples s'achevent en utilisation de fichier:
380 services/outgoing/testMessagesSender.php
381 On peut appeler ce script depuis de la ligne de commande en tapant:
382
383 <path_to_outgoing_folder>$ php testMessagesSender.php
384
385 En utilisant differents variables statistiques qui sont definie dans ce script
386 on peut tester l'envoi des tous les messages.
387
388 Le logging se fait dans le fichier services/tmp/log.txt. Pour que le logiciel
389 puisse enregistrer les messages dans le log.txt, le répertoire tmp doit être
390 la propriété d'utilisateur d'Apache (www-data par exemple).
391
392 Il y a 11 type de messages que on envoi d'openfoncier vers ERP.
393
394 L'envoi du message "ERP Qualifie" est declanche pour un dossier DAT quand le cas
395 "à qualifier" est décoche. Pour faire ce test il faut créer un dossier avec
396 nature "Dépôt de dossier DAT".
397 1. créer une demande pour un PC
398 2. créer un dossier d'instruction attache au dossier d'autorisation créé dans le 1
399 avec la nature de dossier "Dépôt de dossier DAT", ou "Demande d'ouverture ERP DAT",
400 est coche le cas "à qualifier"
401 3. Appuyer sur le bouton "Valider"
402 4. Modifier le même dossier, en décochant le cas "à qualifier"
403 5. Appuyer le bouton "Valider"
404
405
406 Les messages "Demande de complétude de dossier PC pour un ERP" et "Demande de
407 qualification de dossier PC pour un ERP" sont envoyés quand le cas "à qualifier"
408 est décoché pour un dossier PC qui est libelle ERP.
409 1. créer une demande pour un PC
410 2. créer un dossier d'instruction attache au dossier d'autorisation créé dans le 1
411 avec la nature "Permis de Construire" avec le cas "à qualifier" coche
412 3. Appuyer sur le bouton "Valider"
413 4. Modifier le même dossier, en décochant le cas "à qualifier"
414 5. Appuyer le bouton "Valider"
415
416
417 Le message "Demande d'instruction de dossier PC pour un ERP" est envoyé pour un
418 dossier PC quand la consultation d'ERP services sécurité ou accessibilité
419 est demandée sur un dossier PC libelle ERP
420 1. créer une demande pour un PC
421 2. créer un dossier d'instruction attache au dossier d'autorisation créé dans le 1
422 avec la nature "Permis de Construire"
423 3. Appuyer sur le bouton "Valider"
424 4. "Ouvrir" l'onglet "consultation"
425 5. Créer une consultation de type "ERP Service Sécurité" ou "ERP Service Accessibilité"
426 6. Appuyer le bouton "Valider"
427
428
429 Quand on crée un événement "accepter un dossier sans réserve" sur un dossier PC libelle ERP,
430 le message "Arrête PC effectue" est envoyé.
431 1. créer une demande pour un PC
432 2. créer un dossier d'instruction attache au dossier d'autorisation créé dans le 1
433 avec la nature "Permis de Construire"
434 3. Appuyer sur le bouton "Valider"
435 4. Créer un événement initial dans le sousform "Instruction"
436 5. Créer l'événement "accepter un dossier sans réserve"
437 6. Appuyer le bouton "Valider"
438
439
440 Le message "Consultation ERP pour conformité" est envoyée quand:
441 1. créer une demande pour un PC
442 2. créer un dossier d'instruction attache au dossier d'autorisation créé dans le 1
443 avec la nature "Permis de Construire"
444 3. Appuyer sur le bouton "Valider"
445 4. "Ouvrir" l'onglet "consultation"
446 5. Créer une consultation de type "ERP Service Conformité"
447 6. Appuyer le bouton "Valider"
448
449
450 Le message "Dépôt de dossier DAT" est envoyé quand on crée un dossier de type
451 "Dépôt de dossier DAT".
452 1. créer une demande pour un PC
453 2. créer un dossier d'instruction attache au dossier d'autorisation créé dans le 1
454 avec la nature "Dépôt de dossier DAT"
455 3. Appuyer sur le bouton "Valider"
456
457
458 Le message "Demande d'ouverture ERP DAT" est envoyé quand on crée un dossier de
459 type "Demande d'ouverture ERP DAT".
460 1. créer une demande pour un PC
461 2. créer un dossier d'instruction attache au dossier d'autorisation créé dans le 1
462 avec la nature "Demande d'ouverture ERP DAT"
463 3. Appuyer sur le bouton "Valider"
464
465
466 Le message "Annulation de la demande" est envoyé quand on crée un dossier de type
467 "Annulation de la demande" en cochant le cas "erp".
468 1. créer une demande pour un PC
469 2. créer un dossier d'instruction attache au dossier d'autorisation créé dans le 1
470 avec la nature "Annulation de la demande"
471 3. Appuyer sur le bouton "Valider"
472
473
474 Le message "Demande d'ouverture ERP PC" "rattache" au dossier DAACT est envoyé
475 quand un dossier de type "Demande PC rattache DAACT" est créé en cochant le cas
476 "erp"
477 1. créer une demande pour un PC
478 2. créer un dossier d'instruction attache au dossier d'autorisation créé dans le 1
479 avec la nature "Demande PC rattache DAACT" avec cas "erp" coche
480 3. Appuyer sur le bouton "Valider"
481
482
483 Quand on crée un événement "refuser un dossier" sur un dossier PC libelle ERP,
484 le message "Décision de conformité effectuée" est envoyée.
485 1. créer une demande pour un PC
486 2. créer un dossier d'instruction attache au dossier d'autorisation créé dans le 1
487 avec la nature "Permis de Construire"
488 3. Appuyer sur le bouton "Valider"
489 4. Créer un événement initial dans le sousform "Instruction"
490 5. Créer l'événement "refuser un dossier"
491 6. Appuyer le bouton "Valider"
492
493 Pour que les messages SOAP partent vers le referentiel des arrêtés il faut mettre l'URL
494 du WSDL dans $ARRETE_WSDL qui se trouve dans le fichier dyn/services.inc.php
495 Les logins et mots de passes d'accès au web service seront configurés dans le
496 fichier dyn/services.inc.php.
497 Il est possible d'ajouter un couple login/mdp pour authentification hhtp/https,
498 puis un autre couple pour l'authentification au web services.
499
500 Les messages sont traités de la même façon que les REST, une "queue" et un "router"
501 ont été créer pour ce type de message.
502
503 Seul un message est envoyé au referenciel des arrêtés :
504
505 L'envoi du message contenant les informations des arrêtés est déclanché lorsque
506 l'arrêté a été signé par l'autorité compétente.
507
508 Lors de la modification de la date de retour de signature du maire l'envoi est déclanché

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26