/[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 753 by fmichon, Mon Nov 19 15:47:27 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     */
9    
10    #############
11    Services REST
12    #############
13    
14  CONFIGURATION D'APACHE POUR UTILISER RESTLER:  ********************************************
15    Configuration d'Apache pour utiliser RESTLER
16    ********************************************
17    
18  Pour utiliser RESTLER il faut que dans le serveur Apache module rewrite est activé.  Activer le mod_rewrite Apache
19  Pour le faire on crée un lien symbolique de dossier mond-enabled vers dossier mods-available.  =============================
20    
21  $ ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load  Le module Apache mod_rewrite est un module qui permet la réécriture des URLs.
22    Pour utiliser RESTLER il faut que ce module soit activé. Pour ce faire ::
23    
24  Ensuite, il faut ajouter le suivant dans le fichier /etc/apache2/sites-enabled/000-default :      $ a2enmod rewrite
25    
     #<Directory "/home/<path_to>/services">  
         RewriteEngine On  
         RewriteRule ^(.*)$ /<path_to>/services/rest_entry.php [QSA,L]  
     #</Directory>  
26    
27  Le chemin donné dans la balise Directory doit contenir le fichier qui crée une instance de RESTLER  Paramétrer le virtualhost
28  et ajoute les services au RESTLER. Dans notre cas ce fichier s'appele index.php.  =========================
29    
30  Pour que les changements prennent l'effet il faut redemmarer le serveur Apache :  Ajouter les lignes suivantes dans le paramétrage du virtualhost souhaité ::
31    
32  $ sudo service apache2 restart      RewriteEngine On
33            RewriteCond %{REQUEST_URI} ^.*/openfoncier/services/(.*[^/])
34        RewriteRule ^(.*)$ /var/www/openfoncier/services/rest_entry.php [QSA,L]
35    
36    Dans la configuration de votre virtualhost penser à ce que les méthodes HTTP
37    nécessaires GET, PUT, POST, DELETE soient autorisées.
38    
39    
40    Redémarrer Apache
41    =================
42    
43  CONFIGURATION DE POSTGRESQL:  Pour que les changements prennent effet il faut redémarrer le serveur Apache ::
44    
45  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';  
46    
 Parfois on doit aussi modifier le fichier pg_hba.conf pour que l'authentification se deroulle bien.  
47    
48    
49    ************************************************************
50    Utilisation des services REST avec curl en ligne de commande
51    ************************************************************
52    
53    Pour envoyer une demande concernant les utilisateurs, avec curl et simple HTTP authetification, on fait :
54    
55    - en cas de GET :
56    $ curl --user <username> -v http://<server>/<path_to>/services/utilisateurs/<ID>
57    
58  UTILISATION DU RESTLER:  Le '<ID>' doit etre remplace par l'ID d'un utilisateur, le '<server>' doit etre remplace par un server IP
59    ou un domain name, et '<path_to>' est le chemin, dans la hierarchie des fichiers, ou se trouve openfoncier.
60    
61  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 POST :
62  en disponibilité. Une exemple de ce fichier est donne ci-dessous :  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
63    
64  <?php  - en cas de PUT:
65      require_once '/path/to/restler.php';  $ curl --user <username> -v -H "Content-Type: application/json" -d '{"nom":"Changed_name"}' -X PUT  http://<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();  
 ?>  
66    
67  Pour envoyer une demande au Myservices classe par RESTLER on utilise :  - en cas de DELETE:
68    $ curl --user <username> -v -X DELETE http://localhost/~mirna/head_openfoncier/services/utilisateurs/<ID>
69    
70  http://127.0.0.1/index.php/myservices  En cas d'encryptage SSL des donnes, curl doit etre utilise avec l'option E comme par exemple :
71    $ 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>
72    
73    Le key_certificate.concat contient la cle avec le certificat colle a la fin de la cle.
74    
75    
76    
77    *****************************************
78    Description des services REST openFoncier
79    *****************************************
80    
81    Ressource 'maintenance'
82    =======================
83    
84    Méthode POST
85    ------------
86    
87    /services/maintenance
88    
89    {
90    "module" : "user",
91    "data" : "NA"
92    }
93    
94    
95    {
96    "module" : "consultation",
97    "data" : "NA"
98    }
99    
100    
101    
102    Ressource 'consultations'
103    =========================
104    
105    Méthode PUT
106    -----------
107    
108    
109    
110    Ressource 'messages'
111    ====================
112    
113    Méthode POST
114    ------------
115    
116    
117    
118    Ressource 'dossier_autorisation'
119    ================================
120    
121    Méthode PUT
122    -----------
123    
124    
125    Méthode GET
126    -----------
127    
 Dans la ligne dessus la fonction get(.) de la classe Myservices est appele.  
128    

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26