Fork me on GitHub

Rapport de message :*
 

Re: simuler GraphQL dans Xoops

Titre du sujet : Re: simuler GraphQL dans Xoops
par davidm78 sur 10/11/2022 09:15:47

Bonjour,

Merci pour ton retour.
Pour résumer, je souhaite que mon module Xoops soit le serveur API.
Bon, du coup, je suis en train de redévelopper le framework light de GraphQL.
J'en suis là:
$fct ""// Nom de la fonction
$prms = array(); // Paramètres de la fonction (passés entre parenthèses)
try {
    
$rawInput file_get_contents('php://input'); //, true, $context
    
if (strpos(strtolower($rawInput), "query")) {
        
$input json_decode($rawInputtrue);
        
$query $input['query']; // ['data']
        
$vars = isset($input['variables']) ? $input['variables'] : null;
        
//foreach ($vars as $name => $value) {echo "POST: $name: $valuen";}
        //echo "query: "; print_r($query); echo "rn";
        
$pos1 strpos($query,"{");
        
$pos2 strpos($query,"(");
        if (!
$pos2)
            
$pos2 strpos($query,"{"$pos1+1);
        
$fct trim(substr($query$pos1+1$pos2-$pos1-1));
        echo 
"fct: "print_r($fct); echo "rn";
        
$prmStr trim(substr($query$pos2+1strpos($query,")")-$pos2-1));
        
$parametres str_replace(""", "", $prmStr);
        //echo "
parametres"; print_r($parametres); echo "rn";
        
$tab = explode(",", trim($parametres));
        //print_r(
$tab); echo "rn";
        foreach(
$tab as $str) {
            
$prm = explode(":", trim($str));
            
$prms["'".trim($prm[0])."'"]= (count($prm)>1)? trim($prm[1]):"";
        } 
// */
        //echo "prms: "; print_r($prms); echo "rn";
    
}
} catch (
Exception $e) {
    
$response = [ 'error' => [ 'message' => $e->getMessage() ] ];
}

Pour le moment, ça suffit à répondre à mon besoin. Mais on est loin d'être "conventionnel" et générique.
Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

50 Personne(s) en ligne (35 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 50 | Plus ...