186,7 → 186,7 |
); |
|
/** Tableau des noms des paramètres à définir dans le fichier de config car obligatoirement nécessaire à cette classe.*/ |
private $parametres_obligatoires = array('debogage', 'debogage_mode', 'serveur.baseURL', 'chemin_modules'); |
private $parametres_obligatoires = array('debogage', 'debogage_mode', 'serveur.baseURL', 'chemin_services'); |
|
/** |
* Analyse les données envoyées au serveur, enregistre la méthode HTTP utilisée pour appeler le serveur et parse |
267,6 → 267,7 |
if ($this->verifierApiVersion($apiVersion)) { |
$this->apiVersion = $apiVersion; |
self::$config['chemins']['api'] = Config::get('chemin_modules').$this->apiVersion.DS; |
self::$config['chemins']['api_bibliotheque'] = self::$config['chemins']['api'].Config::get('dossier_bibliotheque').DS; |
} else { |
self::envoyerEnteteStatutHttp(self::HTTP_CODE_MAUVAISE_REQUETE); |
$e = "Aucune version d'API n'a été spécifiée.\n". |
370,7 → 371,7 |
if (class_exists($classe)) { |
return null; |
} |
$chemins = array('', self::$config['chemins']['api']); |
$chemins = array('', self::$config['chemins']['api'], self::$config['chemins']['api_bibliotheque']); |
foreach ($chemins as $chemin) { |
$chemin = $chemin.$classe.'.php'; |
if (file_exists($chemin)) { |
397,6 → 398,17 |
case 'PUT': |
$retour = $this->put(); |
break; |
// Autorise l'accès depuis des serveurs tiers |
/* |
case 'OPTIONS': |
header('Access-Control-Allow-Origin: *'); |
header('Access-Control-Allow-Headers:origin, content-type'); |
header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS'); |
header('Access-Control-Allow-Content-Type: application/json'); |
header('Access-Control-Max-Age: 3628800'); |
header('Access-Control-Allow-Credentials: false'); |
break; |
*/ |
default : |
self::envoyerEnteteStatutHttp(self::HTTP_CODE_METHODE_NON_AUTORISE); |
header('Allow: GET, POST, DELETE, PUT'); |
493,11 → 505,12 |
|
private function delete() { |
if (count($this->ressources) != 0) { |
$paires = $this->parserDonneesRequete(); |
if ($this->service != null) { |
$Service = new $this->service(self::$config); |
if (method_exists($Service, self::METHODE_DELETE)) { |
$methodeDelete = self::METHODE_DELETE; |
$info = $Service->$methodeDelete($this->ressources); |
$info = $Service->$methodeDelete($this->ressources, $paires); |
if ($info === true) { |
$this->envoyerEnteteStatutHttp(self::HTTP_CODE_SUPPRESSION_OK); |
} else if ($info === false) { |
531,6 → 544,9 |
if ($this->requeteDonneesParsees != null) { |
$donnees = $this->requeteDonneesParsees; |
} else if ($this->requeteDonnees != null) { |
if (preg_match('/application\/json/', $_SERVER['CONTENT_TYPE'])) { |
$donnees = json_decode($this->requeteDonnees, true); |
} else { |
$paires = explode('&', $this->requeteDonnees); |
foreach ($paires as $paire) { |
list($cle, $valeur) = explode('=', $paire); |
538,6 → 554,7 |
$valeur = (isset($valeur)) ? trim(urldecode($valeur)) : ''; |
$donnees[$cle] = $valeur; |
} |
} |
$this->requeteDonneesParsees = $donnees; |
} |
return $donnees; |
565,6 → 582,9 |
// Envoie des messages d'erreur et d'avertissement du serveur |
$retour .= self::envoyerMessages(); |
|
// Autorise l'accès depuis des serveurs tiers |
//header('Access-Control-Allow-Origin: *'); |
|
// Envoie sur la sortie standard le contenu de la réponse HTTP |
print $retour; |
|