Gestion du @path dans l'url pour 'ModuleRequest' de la forme : host.io/api/moduleName/methodName/?
This commit is contained in:
parent
07d608fdaf
commit
629e088588
|
@ -98,8 +98,8 @@
|
||||||
|
|
||||||
|
|
||||||
// Api
|
// Api
|
||||||
$R->post('api.+', function(){
|
$R->post('api(?:/(.*))?', function($url){
|
||||||
$request = ModuleRequest::fromPost($_POST);
|
$request = ModuleRequest::fromPost($url, $_POST);
|
||||||
$answer = $request->dispatch();
|
$answer = $request->dispatch();
|
||||||
|
|
||||||
echo $answer->serialize();
|
echo $answer->serialize();
|
||||||
|
|
|
@ -252,49 +252,15 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* DESERIALISATION ET CREATION D'UN OBJET
|
|
||||||
*
|
|
||||||
* @jsonString<String> Json au format string contenant les donnees
|
|
||||||
*
|
|
||||||
* @return instance<ModuleRequest> Retourne un objet de type <ModuleRequest>
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public static function fromString($jsonString){
|
|
||||||
$json = json_decode( $jsonString, true );
|
|
||||||
|
|
||||||
// Verification du parsage
|
|
||||||
if( $json == null )
|
|
||||||
return new ModuleRequest();
|
|
||||||
|
|
||||||
// Verification des parametres
|
|
||||||
if( !isset($json['path']) )
|
|
||||||
return new ModuleRequest();
|
|
||||||
|
|
||||||
// On definit $params au cas ou il soit vide
|
|
||||||
$params = $json;
|
|
||||||
// On retire le @path de @params
|
|
||||||
unset($params['path']);
|
|
||||||
|
|
||||||
return new ModuleRequest($json['path'], $params);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* DESERIALISATION A PARTIR DES DONNEES POST
|
/* DESERIALISATION A PARTIR DES DONNEES POST
|
||||||
*
|
*
|
||||||
|
* @url<String> Contenu de l'url après api/ (si existe)
|
||||||
* @post<Array> Tableau des donnes $_POST => @path + @data (opt)
|
* @post<Array> Tableau des donnes $_POST => @path + @data (opt)
|
||||||
*
|
*
|
||||||
* @return instance<ModuleRequest> Retourne un objet de type <ModuleRequest>
|
* @return instance<ModuleRequest> Retourne un objet de type <ModuleRequest>
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public static function fromPost($post){
|
public static function fromPost($url, $post){
|
||||||
/* [0] Verification de l'authentification
|
/* [0] Verification de l'authentification
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
// On definit le token
|
// On definit le token
|
||||||
|
@ -303,9 +269,19 @@
|
||||||
|
|
||||||
/* [1] On verifie que le @path est renseigne
|
/* [1] On verifie que le @path est renseigne
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
|
/* (1) Si le path est dans @url */
|
||||||
|
$pathInUrl = strlen($url[0]) > 0 && preg_match('#^([\w_-]+)/([\w_-]+)/?$#', $url[0], $urlMatches);
|
||||||
|
|
||||||
|
// On l'utilise pour le chemin
|
||||||
|
if( $pathInUrl )
|
||||||
|
$post['path'] = $urlMatches[1].'/'.$urlMatches[2];
|
||||||
|
|
||||||
|
/* (2) On vérifie dans tous les cas si le path existe */
|
||||||
if( !isset($post['path']) )
|
if( !isset($post['path']) )
|
||||||
return new ModuleRequest();
|
return new ModuleRequest();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* [2] On verifie que @data est renseigne
|
/* [2] On verifie que @data est renseigne
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
// Si variable n'existe pas, on cree un tableau vide
|
// Si variable n'existe pas, on cree un tableau vide
|
||||||
|
@ -314,6 +290,8 @@
|
||||||
// On retire le @path de @params
|
// On retire le @path de @params
|
||||||
unset($params['path']);
|
unset($params['path']);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* [3] On met les paramètres JSON en JSON (si ils décodent sans erreur)
|
/* [3] On met les paramètres JSON en JSON (si ils décodent sans erreur)
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
foreach($params as $name=>$value){
|
foreach($params as $name=>$value){
|
||||||
|
|
|
@ -139,6 +139,9 @@
|
||||||
// Code Http
|
// Code Http
|
||||||
ManagerError::setHttpCode($this->error);
|
ManagerError::setHttpCode($this->error);
|
||||||
|
|
||||||
|
// Type de contenu
|
||||||
|
// header('Content-Type: application/json');
|
||||||
|
|
||||||
// On rajoute l'erreur au message
|
// On rajoute l'erreur au message
|
||||||
$returnData = array_merge(
|
$returnData = array_merge(
|
||||||
array(
|
array(
|
||||||
|
|
Loading…
Reference in New Issue