Subversion Repositories Applications.wikini

Compare Revisions

Ignore whitespace Rev 29 → Rev 59

/tags/v1.0-pithivier/tools/api/rest/modules/0.5/Exemple.php
New file
0,0 → 1,51
<?php
// declare(encoding='UTF-8');
/**
* Classe d'exemple de service web du projet eFlore
* Source des données : {NOM_DU_PROJET} {ADRESSE_WEB_DONNEES_DU_PROJET}
* Paramètres du service :
* - param1 : explication de l'utilisation du param1
* - param2 : explication de l'utilisation du param2
* Exemple :
* http://localhost/{CODE_DU_PROJET}/services/0.1/Exemple?param1=val1&param2=val2
*
* @category php 5.2
* @package lion1906
* @author {PRENOM} {NOM}<{PRENOM}@tela-botanica.org>
* @copyright Copyright (c) 2011, Tela Botanica (accueil@tela-botanica.org)
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
* @version $Id$
*/
class Exemple extends Service {
public function consulter($ressources, $parametres) {
$verifOk = $this->verifierParametres($parametres);
if ($verifOk) {
// Débuter ici le code du service
$retour = $this->formaterEnJson(array('info' => 'OK'));
//print_r($retour);
return $retour;
} else {
RestServeur::envoyerEnteteStatutHttp(RestServeur::HTTP_CODE_MAUVAISE_REQUETE);
}
}
private function verifierParametres($parametres) {
$ok = true;
extract($parametres);
if ($param1 != '' && !preg_match('/^val1$/', $param1)) {
$message = "La valeur du param1 n'est pas bonne. Seul 'val1' est accepté.";
$this->ajouterMessage($message);
$ok = false;
}
if ($param1 != '' && !preg_match('/^val1$/', $param2)) {
$message = "La valeur du param2 n'est pas bonne Seul 'val2' est accepté.";
$this->ajouterMessage($message);
$ok = false;
}
return $ok;
}
}
?>
/tags/v1.0-pithivier/tools/api/rest/modules/0.5/Service.php
New file
0,0 → 1,38
<?php
abstract class Service extends RestService {
//+----------------------------------------------------------------------------------------------------------------+
// GESTION de l'ENVOIE au NAVIGATEUR
 
protected function formaterEnJsonp($donnees = null, $encodage = 'utf-8') {
$contenu = $_GET['callback'].'('.json_encode($donnees).');';
return $this->preparerEnvoie($contenu, 'text/html', $encodage);
}
protected function formaterEnJson($donnees = null, $encodage = 'utf-8') {
$contenu = json_encode($donnees);
return $this->preparerEnvoie($contenu, 'application/json', $encodage);
}
private function preparerEnvoie($sortie = 'OK', $mime = 'text/html', $encodage = 'utf-8') {
$this->envoyerEnteteContenu($encodage, $mime);
return $sortie;
}
 
private function envoyerEnteteContenu($encodage, $mime) {
if (!is_null($mime) && !is_null($encodage)) {
header("Content-Type: $mime; charset=$encodage");
} else if (!is_null($mime) && is_null($encodage)) {
header("Content-Type: $mime");
}
}
protected function envoyerAuth($message_accueil, $message_echec) {
header('HTTP/1.0 401 Unauthorized');
header('WWW-Authenticate: Basic realm="'.mb_convert_encoding($message_accueil, 'ISO-8859-1', 'UTF-8').'"');
header('Content-type: text/plain; charset=UTF-8');
print $message_echec;
exit(0);
}
}
?>