Subversion Repositories eFlore/Applications.del

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 aurelien 1
<?php
2
/**
3
 * Service Exemple pour apprendre à utiliser les classes JRest
4
 * Encodage en entrée : utf8
5
 * Encodage en sortie : utf8
6
 *
7
 * @author Aurélien PERONNET <aurelien@tela-botanica.org>
8
 * @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>
9
 * @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
10
 * @version $Id$
11
 */
12
class ExempleService extends Del {
13
 
14
	/**
15
	* Méthode appelée avec une requête de type GET avec une url de la forme
16
	* http://localhost/jrest/ExempleService/
17
	*
18
	* Sert normalement à renvoyer la description des possibilités du service
19
	*
20
	*/
21
	public function getRessource() {
22
		$chaine = '<div>'.
23
					'<p> Bonjour, je suis un service web </p>'.
24
					'<p> Vous pouvez m\'appeler avec les méthodes GET, POST, PUT et DELETE </p>'.
25
				  '</div>';
26
 
27
		$this->envoyer($chaine);
28
	}
29
 
30
	/**
31
	* Méthode appelée avec une requête de type GET avec une url de la forme
32
	* http://localhost/jrest/ExempleService/uid[0]/$uid[1]/ etc...
33
	*
34
	* Sert normalement à ramener un élément précis indiqué par un identifiant
35
	* qui se situe dans l'url après le nom du service
36
	* Le filtrage, le format de retour, les paramètres optionnels ... sont normalement indiqués
37
	* dans le tableau $_GET
38
	* Pour obtenir l'élément 2501 dans le format HTML cela pourrait donner
39
	* http://localhost/jrest/ExempleService/2501?format=HTML
40
	*
41
	* @param $uid un tableau contenant les élements passés dans l'url après le nom du service
42
	*
43
	*/
44
	public function getElement($uid)
45
	{
46
		$chaine = '<div id="element_'.$uid[0].'">'.
47
					'<p> Bonjour, je suis l\'élément '.$uid[0].' </p>'.
48
					'<span> Les filtres demandés sont : </span>'.
49
					'<ul>';
50
		foreach($_GET as $cle => $valeur) {
51
			$chaine .= '<li>'.$cle.' = '.$valeur.'</li>';
52
		}
53
		$chaine .= '</ul>'.
54
				  '</div>';
55
 
56
		$this->envoyer($chaine);
57
	}
58
 
59
	/**
60
	 * Méthode appelée avec une requête de type PUT, ou bien un POST sans identifiant après le nom
61
	 * du service, donc une url de la forme :
62
	 * http://localhost/jrest/ExempleService/ + du contenu dans le post
63
	 * Cette méthode sert normalement a créer un nouvel élément avec les données fournies en post
64
	 *
65
	 * @param array $pairs Un tableau contenant les valeurs passées dans le post qui permettront de créer l'élement
66
	*/
67
	function createElement($pairs)
68
	{
69
		$chaine = '<div>'.
70
					'<p> Bonjour, vous venez de créer un nouvel élément </p>'.
71
					'<span> Les données suivantes ont été utilisées : </span>'.
72
					'<ul>';
73
		foreach($pairs as $cle => $valeur) {
74
			$chaine .= '<li>'.$cle.' = '.$valeur.'</li>';
75
		}
76
		$chaine .= '</ul>'.
77
				  '</div>';
78
 
79
		$this->envoyer($chaine);
80
	}
81
 
82
	/**
83
	 * Méthode appelée avec une requête de type PUT, ou bien un POST avec un identifiant après le nom
84
	 * du service, donc une url de la forme :
85
	 * http://localhost/jrest/ExempleService/$uid[0] + du contenu dans le post
86
	 * Cette méthode sert normalement a modifier un élément existant avec les données fournies
87
	 * en post
88
	 *
89
	 * @param array $pairs Un tableau contenant les valeurs passées dans le post qui permettront
90
	 * de modifier l'élement indiqué par ce qui suit le nom du service dans l'url
91
	*/
92
	public function updateElement($uid,$pairs)
93
	{
94
		$chaine = '<div>'.
95
					'<p> Bonjour, l\'élément '.$uid[0].' a été modifié </p>'.
96
					'<span> Les données suivantes ont été utilisées : </span>'.
97
					'<ul>';
98
		foreach($pairs as $cle => $valeur) {
99
			$chaine .= '<li>'.$cle.' = '.$valeur.'</li>';
100
		}
101
		$chaine .= '</ul>'.
102
				  '</div>';
103
 
104
		$this->envoyer($chaine);
105
	}
106
 
107
	/**
108
	 * Méthode appelée avec une requête de type DELETE, en indiquant l'identifiant de l'élément à supprimer
109
	 * ce qui donne une url de la forme :
110
	 * http://localhost/jrest/ExempleService/$uid[0]
111
	 *
112
	 * ATTENTION : Safari ne sais pas envoyer les DELETE donc on triche en faisant un post qui contient
113
	 * action=DELETE (les majuscules sont importantes)
114
	 * On a donc http://localhost/jrest/ExempleService/$uid[0] + action=DELETE dans le post
115
	 *
116
	 * @param $uid un tableau contenant les élements passés dans l'url après le nom du service
117
	*/
118
	function deleteElement($uid){
119
 
120
		$chaine = '<div>'.
121
					'<p> Bonjour, l\'élément '.$uid[0].' a été supprimé </p>'.
122
				  '</div>';
123
 
124
		$this->envoyer($chaine);
125
	}
126
}
127
?>