Rev 287 | Rev 361 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php
/**
* Classe principale gérant les services.
* Paramètres liés dans config.ini :
* - serveur.baseURL
*
* Encodage en entrée : utf8
* Encodage en sortie : utf8
*
* @category Php 5.2
* @package Framework
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @copyright Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
* @since 0.3
* @version $Id: RestService.php 299 2011-01-18 14:03:46Z jpm $
* @link /doc/framework/
*/
abstract class RestService {
/** Objet de connection à la base de données. */
protected $bdd;
public function __construct($config) {
$this->config = $config;
// Connection à la base de données
$this->bdd = new Bdd();
}
/**
* Méthode appelée lors d'une requête HTTP de type GET.
*
* Si la consultation est un succès, le code statut HTTP retourné devrait être 200.
*
* @param array Morceaux de l'url servant à préciser la ressource concerné pour le service demandé.
* @param array Partie de l'url situé après le '?' servant à paramétrer le service demandé.
* @return string une chaine indiquant le succès de l'opération et les données demandées.
*/
public function consulter($ressources, $parametres) {
RestServeur::envoyerEnteteStatutHttp(RestServeur::HTTP_CODE_METHODE_NON_AUTORISE);
echo "Le service '".get_class($this)."' n'autorise pas la consultation.";
}
/**
* Méthode appelée lors d'une requête HTTP de type POST.
*
* La ressource à modifier est indiquée via l'url. Les données devant servir à la mise à jours sont passées dans le corps
* de la requête.
* Si la modification est un succès, le code statut HTTP retourné devrait être 201.
*
* @param array Morceaux de l'url servant à préciser la ressource concerné pour le service demandé.
* @param array les données transférées dans le corps de la requête devant servir à la modification.
* @return mixed une chaine indiquant le succès de l'opération ou rien.
*/
public function modifier($ressources, $requeteDonnees) {
RestServeur::envoyerEnteteStatutHttp(RestServeur::HTTP_CODE_METHODE_NON_AUTORISE);
echo "Le service '".get_class($this)."' n'autorise pas la modification.";
}
/**
* Méthode appelée lors d'une requête HTTP de type PUT.
*
* L'identifiant de la ressource à ajouter est indiqué via l'url si on le connait par avance. Sinon, il doit être créé par
* le service. Dans ce dernier cas, le nouvel identifiant devrait être renvoyé dans le corps de la réponse.
* Si l'ajout est un succès, le code statut HTTP retourné devrait être 201.
*
* @param array Morceaux de l'url servant à préciser la ressource concerné pour le service demandé.
* @param array les données transférées dans le corps de la requête devant servir à l'ajout.
* @return string l'identifiant créé.
*/
public function ajouter($ressources, $requeteDonnees) {
RestServeur::envoyerEnteteStatutHttp(RestServeur::HTTP_CODE_METHODE_NON_AUTORISE);
echo "Le service '".get_class($this)."' n'autorise pas la création.";
}
/**
* Méthode appelée lors d'une requête HTTP de type DELETE (ou POST avec action=DELETE dans le corps de la requete).
*
* Si la suppression est un succès, le code statut HTTP retourné devrait être 204.
*
* @param array Morceaux de l'url servant à préciser la ressource concerné pour le service demandé.
* @return mixed une chaine indiquant le succès de l'opération ou rien.
*/
public function supprimer($ressources) {
RestServeur::envoyerEnteteStatutHttp(RestServeur::HTTP_CODE_METHODE_NON_AUTORISE);
echo "Le service '".get_class($this)."' n'autorise pas la suppression.";
}
}
?>