Line 33... |
Line 33... |
33 |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
|
33 |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
|
34 |
* @copyright Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)
|
34 |
* @copyright Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)
|
35 |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>
|
35 |
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>
|
36 |
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
|
36 |
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
|
37 |
* @since 0.3
|
37 |
* @since 0.3
|
38 |
* @version $Id: RestServeur.php 421 2013-04-11 14:43:49Z jpm $
|
- |
|
39 |
* @link /doc/framework/
|
- |
|
40 |
*/
|
38 |
*/
|
41 |
// TODO : gerer les retours : dans ce controleur : code retour et envoi ...
|
39 |
// TODO : gerer les retours : dans ce controleur : code retour et envoi ...
|
42 |
class RestServeur {
|
40 |
class RestServeur {
|
Line 43... |
Line 41... |
43 |
|
41 |
|
Line 51... |
Line 49... |
51 |
const METHODE_DELETE = 'supprimer';
|
49 |
const METHODE_DELETE = 'supprimer';
|
Line 52... |
Line 50... |
52 |
|
50 |
|
53 |
/** Nom de la méthode appelée dans un service pour éxécuter une requête de type PUT. */
|
51 |
/** Nom de la méthode appelée dans un service pour éxécuter une requête de type PUT. */
|
Line -... |
Line 52... |
- |
|
52 |
const METHODE_PUT = 'ajouter';
|
54 |
const METHODE_PUT = 'ajouter';
|
53 |
|
55 |
|
54 |
/** Code HTTP 200 : OK
|
56 |
/** Code HTTP 200 indiquant le succès de l'accès à un service web par la méthode GET.
|
55 |
* Indiquant le succès de l'accès à un service web par la méthode GET.
|
- |
|
56 |
* L'utiliser lors d'une requète de type GET (consulter) pour indiquer le succès de l'opération.
|
- |
|
57 |
* Sera renvoyée par défaut par PHP.
|
57 |
* L'utiliser lors d'une requète de type GET (consulter) pour indiquer le succès de l'opération.
|
58 |
* @see http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1
|
Line -... |
Line 59... |
- |
|
59 |
*/
|
58 |
* Sera renvoyée par défaut par PHP. */
|
60 |
const HTTP_CODE_OK = '200';
|
59 |
const HTTP_CODE_OK = '200';
|
61 |
|
- |
|
62 |
/** Code HTTP 201 : Created
|
- |
|
63 |
* Indiquant que l'accès à un service web est un succès et que la ressource a été créée ou modifié.
|
60 |
|
64 |
* L'utiliser lors d'une requète de type PUT (ajouter) ou POST (modifier) pour indiquer le succès de l'opération.
|
Line -... |
Line 65... |
- |
|
65 |
* @see http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.2
|
- |
|
66 |
*/
|
- |
|
67 |
const HTTP_CODE_CREATION_OK = '201';
|
- |
|
68 |
|
- |
|
69 |
/** Code HTTP 202 : Accepted
|
- |
|
70 |
* Indiquant que la requête a été acceptée mais que son traitement n'est pas encore terminé.
|
- |
|
71 |
* L'utiliser lors d'une requète de type PUT (ajouter) ou POST (modifier) pour indiquer que les données
|
- |
|
72 |
* seront traitées ultérieurement.
|
- |
|
73 |
* @see http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.3
|
61 |
/** Code HTTP 201 indiquant que l'accès à un service web est un succès et que la ressource a été créée ou modifié.
|
74 |
*/
|
62 |
* L'utiliser lors d'une requète de type PUT (ajouter) ou POST (modifier) pour indiquer le succès de l'opération. */
|
75 |
const HTTP_CODE_ACCEPTE_OK = '202';
|
63 |
const HTTP_CODE_CREATION_OK = '201';
|
76 |
|
- |
|
77 |
/** Code HTTP 204 : No Content
|
- |
|
78 |
* Indique que l'accès à un service web est un succès et qu'il n'y a pas de contenu à renvoyer.
|
64 |
|
79 |
* L'utiliser lors d'une requète de type DELETE (supprimer) pour indiquer le succès de l'opération si aucun
|
Line -... |
Line 80... |
- |
|
80 |
* contenu (status) ne doit être renvoyé, sinon utiliser 200 OK.
|
65 |
/** Code HTTP 204 indique que l'accès à un service web est un succès et qu'il n'y a pas de contenu à renvoyer.
|
81 |
* @see http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.5
|
66 |
* L'utiliser lors d'une requète de type DELETE (supprimer) pour indiquer le succès de l'opération si aucun
|
82 |
*/
|
67 |
* contenu (status) ne doit être renvoyé, sinon utiliser 200 OK. */
|
83 |
const HTTP_CODE_SUPPRESSION_OK = '204';
|
- |
|
84 |
|
- |
|
85 |
/** Code HTTP 400 : Bad Request
|
68 |
const HTTP_CODE_SUPPRESSION_OK = '204';
|
86 |
* Indique que les paramètres envoyés au service contiennent des erreurs.
|
Line -... |
Line 87... |
- |
|
87 |
* L'utiliser pour indiquer l'échec de l'accès au service. La réponse pourra contenir un message expliquant la source
|
69 |
|
88 |
* de l'erreur.
|
70 |
/** Code HTTP 400 indique que les paramètres envoyés au service contiennent des erreurs.
|
89 |
* @see http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1
|
- |
|
90 |
*/
|
- |
|
91 |
const HTTP_CODE_MAUVAISE_REQUETE = '400';
|
71 |
* L'utiliser pour indiquer l'échec de l'accès au service. La réponse pourra contenir un message expliquant la source
|
92 |
|
Line -... |
Line 93... |
- |
|
93 |
/** Code HTTP 401 : Unauthorized
|
- |
|
94 |
* Indiquant que l'accès à un service web est refusé car l'authentification (obligatoire) a échoué pour
|
- |
|
95 |
* accéder à la ressource.
|
- |
|
96 |
* @see http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2
|
- |
|
97 |
*/
|
- |
|
98 |
const HTTP_CODE_ACCES_NON_AUTORISE = '401';
|
- |
|
99 |
|
72 |
* de l'erreur. */
|
100 |
/** Code HTTP 403 : Forbidden
|
- |
|
101 |
* Indiquant que le service a compris la requête mais refuse de la réaliser.
|
- |
|
102 |
* @see http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4
|
73 |
const HTTP_CODE_MAUVAISE_REQUETE = '400';
|
103 |
*/
|
Line 74... |
Line 104... |
74 |
|
104 |
const HTTP_CODE_ACCES_INTERDIT = '403';
|
- |
|
105 |
|
75 |
/** Code HTTP 401 indiquant que l'accès à un service web est refusé car l'authentification (obligatoire) a échoué pour
|
106 |
/** Code HTTP 404 : Not Found
|
76 |
* accéder à la ressource. */
|
107 |
* Indiquant que la ressource indiquée par l'url est introuvable.
|
- |
|
108 |
* @see http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5
|
- |
|
109 |
*/
|
77 |
const HTTP_CODE_ACCES_NON_AUTORISE = '401';
|
110 |
const HTTP_CODE_RESSOURCE_INTROUVABLE = '404';
|
Line -... |
Line 111... |
- |
|
111 |
|
78 |
|
112 |
/** Code HTTP 405 : Method Not Allowed
|
79 |
/** Code HTTP 404 indiquant que la ressource indiquée par l'url est introuvable. */
|
113 |
* Indique soit :
|
80 |
const HTTP_CODE_RESSOURCE_INTROUVABLE = '404';
|
114 |
* - que le service web ne possède pas d'accès la ressource correspondant à la méthode HTTP employée.
|
- |
|
115 |
* - que la méthode HTTP enployée n'est pas en accord avec la ressource indiquée par l'url.
|
- |
|
116 |
* @see http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.6
|
81 |
|
117 |
*/
|
Line -... |
Line 118... |
- |
|
118 |
const HTTP_CODE_METHODE_NON_AUTORISE = '405';
|
82 |
/** Code HTTP 405 indiquant soit :
|
119 |
|
- |
|
120 |
/** Code HTTP 409 : Conflict
|
- |
|
121 |
* Indique qu'un conflit est survenu vis à vis de la ressource.
|
83 |
* - que le service web ne possède pas d'accès la ressource correspondant à la méthode HTTP employée.
|
122 |
* Par exemple, essayer de créer deux fois la même ressource ou bien tenter de modifier une ressource qui a été modifiée par
|
Line -... |
Line 123... |
- |
|
123 |
* ailleurs.
|
- |
|
124 |
* @see http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.10
|
- |
|
125 |
*/
|
- |
|
126 |
const HTTP_CODE_CONFLIT = '409';
|
- |
|
127 |
|
- |
|
128 |
/** Code HTTP 411 : Length Required
|
- |
|
129 |
* Indique que des paramètres passés dans le contenu de la requête sont nécessaires au service.
|
- |
|
130 |
* @see http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.12
|
- |
|
131 |
*/
|
- |
|
132 |
const HTTP_CODE_CONTENU_REQUIS = '411';
|
- |
|
133 |
|
- |
|
134 |
/** Code HTTP 412 : Precondition Failed
|
- |
|
135 |
* Indique que des entêtes envoyés au serveur sont erronnés.
|
- |
|
136 |
* À utiliser quand un service web reçoit de mauvais entêtes, paramètres et/ou ressources.
|
84 |
* - que la méthode HTTP enployée n'est pas en accord avec la ressource indiquée par l'url. */
|
137 |
* @see http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.13
|
85 |
const HTTP_CODE_METHODE_NON_AUTORISE = '405';
|
138 |
*/
|
- |
|
139 |
const HTTP_CODE_ECHEC_CONDITION = '411';
|
- |
|
140 |
|
86 |
|
141 |
/** Code HTTP 415 : Unsupported Media Type
|
Line -... |
Line 142... |
- |
|
142 |
* Indique que le type de média envoyé au serveur n'est pas accepté par la ressource.
|
- |
|
143 |
* À utiliser quand un service web reçoit un mauvais type de contenu.
|
- |
|
144 |
* @see http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.16
|
- |
|
145 |
*/
|
- |
|
146 |
const HTTP_CODE_CONTENU_NON_SUPPORTE = '415';
|
- |
|
147 |
|
- |
|
148 |
/** Code HTTP 500 : Internal Server Error.
|
- |
|
149 |
* L'utiliser quand le serveur ou un service soulève une erreur ou une exception.
|
- |
|
150 |
* @see http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1
|
- |
|
151 |
*/
|
- |
|
152 |
const HTTP_CODE_ERREUR = '500';
|
- |
|
153 |
|
87 |
/** Code d'erreur HTTP 409 indiquant qu'un conflit est survenu vis à vis de la ressource.
|
154 |
/** Code HTTP 501 : Not Implemented
|
88 |
* Par exemple, essayer de créer deux fois la même ressource ou bien tenter de modifier une ressource qui a été modifiée par
|
155 |
* Indique que le web service ne supporte pas la fonctionnalité demandée.
|
Line 89... |
Line 156... |
89 |
* ailleurs. */
|
156 |
* @see http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.2
|
90 |
const HTTP_CODE_CONFLIT = '409';
|
157 |
*/
|
Line 662... |
Line 729... |
662 |
header("Content-Type: text/plain; charset=utf-8");
|
729 |
header("Content-Type: text/plain; charset=utf-8");
|
663 |
return implode("\n", self::$messages);
|
730 |
return implode("\n", self::$messages);
|
664 |
}
|
731 |
}
|
665 |
}
|
732 |
}
|
666 |
}
|
733 |
}
|
667 |
?>
|
- |
|
668 |
|
734 |
|