Subversion Repositories Applications.framework

Compare Revisions

Ignore whitespace Rev 359 → Rev 360

/trunk/framework/RestService.php
15,24 → 15,49
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
* @since 0.3
* @version $Id$
* @link /doc/framework/
* @link http://www.tela-botanica.org/wikini/DevInformatiques/wakka.php?wiki=AppliBaseDocV3RestServeur
*/
abstract class RestService {
/** Objet de connection à la base de données. */
protected $bdd;
/** Objet de connection à la base de données.
* @deprecated Utiliser la methode getBdd().
* @see getBdd()
*/
protected $bdd = null;
/** Objet Rest Client. */
private $RestClient = null;
public function __construct($config) {
$this->config = $config;
// Connection à la base de données
$this->bdd = new Bdd();
$this->config = $config;
}
/**
* Méthode de connection à la base de données sur demande.
* Tous les services web n'ont pas besoin de s'y connecter.
*/
protected function getBdd() {
if (! isset($this->bdd)) {
$this->bdd = new bdd();
}
return $this->bdd;
}
/**
* Méthode permettant de faire appel à un client REST en fonction des besoins du service.
*/
protected function getRestClient() {
if (! isset($this->RestClient)) {
$this->RestClient = new RestClient();
}
return $this->RestClient;
}
/**
* 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.
* Si la consultation est un succès, le code statut HTTP retourné sera 200. Dans tous les autres cas,
* la méthode devra retourner le code statut HTTP adéquate.
*
* @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é.
40,7 → 65,7
*/
public function consulter($ressources, $parametres) {
RestServeur::envoyerEnteteStatutHttp(RestServeur::HTTP_CODE_METHODE_NON_AUTORISE);
echo "Le service '".get_class($this)."' n'autorise pas la consultation.";
RestServeur::ajouterMessage("Le service '".get_class($this)."' n'autorise pas la consultation.");
}
/**
48,7 → 73,7
*
* 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.
* Si la modification est un succès, la méthode devra retourner "true" et le code statut HTTP retourné sera 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.
56,7 → 81,8
*/
public function modifier($ressources, $requeteDonnees) {
RestServeur::envoyerEnteteStatutHttp(RestServeur::HTTP_CODE_METHODE_NON_AUTORISE);
echo "Le service '".get_class($this)."' n'autorise pas la modification.";
RestServeur::ajouterMessage("Le service '".get_class($this)."' n'autorise pas la modification.");
return false;
}
/**
64,7 → 90,7
*
* 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.
* Si l'ajout est un succès, la méthode devra retourner "true" et le code statut HTTP retourné sera 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.
72,13 → 98,19
*/
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.";
RestServeur::ajouterMessage("Le service '".get_class($this)."' n'autorise pas la création.");
return false;
}
/**
* 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.
* Si la suppression est un succès, la méthode devra retourner "true" et le code statut HTTP retourné par
* RestServeur sera 204.
* Si la ressource à supprimer est introuvable, la méthode devra retourner "false" et le code statut HTTP
* retourné par RestServeur sera 404.
* Dans les autres cas de figure ou si vous souhaitez gérer vos propres codes de retour erreur, retourner
* la valeur null ou rien.
*
* @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.
85,7 → 117,8
*/
public function supprimer($ressources) {
RestServeur::envoyerEnteteStatutHttp(RestServeur::HTTP_CODE_METHODE_NON_AUTORISE);
echo "Le service '".get_class($this)."' n'autorise pas la suppression.";
RestServeur::ajouterMessage("Le service '".get_class($this)."' n'autorise pas la suppression.");
return null;
}
}
?>