ManagerError::Success, 'ReceivedArguments' => func_get_args() ); } /* PERMET DE TESTER UNE L'ORDRE DES PARAMÈTRES * */ public static function phpunitParams($params){ extract($params); return array( 'ModuleError' => ManagerError::Success, 'p1' => $p1, 'p2' => $p2 ); } /* RENVOIE UNE DESCRIPTION EN MARKDOWN DES MODULES DE L'API * * @return markdown Description des modules * */ public static function markdown(){ /* [1] Récupération de la configuration =========================================================*/ // On récupère le fichier et on le parse $modules = json_decode( ResourceDispatcher::getResource('f/json/modules/conf'), true ); // Gestion de l'erreur de parsage if( $modules == null ) return array( 'ModuleError' => ManagerError::ParsingFailed ); /* [2] Mise en forme de la liste des modules =========================================================*/ $markdown = "## Module List\n"; foreach($modules as $moduleName=>$moduleData) $markdown .= "- $moduleName\n"; /* [3] Mise en forme des méthodes des modules =========================================================*/ $markdown .= "----\n## Method List & Description\n"; $count = 1; foreach($modules as $moduleName=>$moduleData){ $markdown .= "### $count - '$moduleName' methods\n"; foreach($moduleData as $methodName=>$methodData) $markdown .= "`$methodName` - ".$methodData['description']."\n"; $markdown .= "----\n"; $count++; } /* [n] Gestion du retour =========================================================*/ return array( 'ModuleError' => ManagerError::Success, 'headers' => array( 'Content-Type' => 'text/markdown; charset=utf-8', 'Content-Transfer-Encoding' => 'binary', 'Content-Disposition' => 'attachment; filename=NxTIC.apib', 'Pragma' => 'no-cache', 'Expires' => '0' ), 'body' => $markdown ); } /* RENVOIE UNE DOC API_BLUEPRINT DE L'API * * @return apiBlueprint Description des modules au format API Blueprint * */ public static function apiBlueprint(){ /* [1] Récupération de la configuration =========================================================*/ // On récupère le fichier et on le parse $modules = json_decode( ResourceDispatcher::getResource('f/json/modules/conf'), true ); // Gestion de l'erreur de parsage if( $modules == null ) return array( 'ModuleError' => ManagerError::ParsingFailed ); /* [2] Pour chaque module =========================================================*/ $content = ''; foreach($modules as $module=>$methods){ $content .= "## $module [/$module] \n\n"; /* [3] Pour chaque méthode =========================================================*/ foreach($methods as $methName=>$method){ /* (1) Description */ $content .= "### $methName [POST /$module/$methName]\n\n"; $content .= $method['description']."\n"; if( count($method['permissions']) > 0) $content .= '> Permissions `'.implode('``', $method['permissions'])."`\n\n"; /* (2) Requête */ $content .= "+ Request (multipart/form-data)\n\n"; $content .= " + Headers\n\n"; $content.= " Authorization: Digest {yourAccessToken}\n\n"; if( isset($method['arguments'])){ $content .= " + Attributes\n\n"; foreach($method['arguments'] as $argName=>$argument) $content .= " $argName: (${argument['type']}) - ${argument['description']}\n"; } /* (3) Réponse */ $content .= "+ Response 200 (application/json)\n\n"; $content .= " + Body\n\n"; if( isset($method['output']) && count($method['output']) > 0 ){ $content .= " {\n"; foreach($method['output'] as $outName=>$outData) $content .= " \"$outName\": @$outName\n"; $content .= " }\n\n\n"; } } } return array( 'ModuleError' => ManagerError::Success, 'headers' => array( 'Content-Type' => 'application/octet-stream; charset=utf-8', 'Content-Transfer-Encoding' => 'binary', 'Content-Disposition' => 'attachment; filename=NxTIC.apib', 'Pragma' => 'no-cache', 'Expires' => '0' ), 'body' => $content ); } } ?>