Manuel:$wgAPIModules
API: $wgAPIModules | |
---|---|
Extensions de module API. |
|
Introduit dans la version : | 1.11.0 (r25364) |
Retiré dans la version : | Encore utilisé |
Valeurs autorisées : | (tableau) |
Valeur par défaut : | [] |
Autres paramètres : Alphabétique | Par fonction |
Détails
Nom du module de mappage de tableau associatif au nom de classe. Les modules d’extension peuvent surcharger les modules de base (qui sont initialisés en ApiMain.php ).
Exemple
Supposons que vous vouliez créer un module API pour calibrer le niveau de awesomeness du wiki.
Vous écririez une nouvelle extension, CalibrateAwesomeness
, mettant ce qui suit dans votre fichier extension.json
:
"AutoloadNamespaces": {
"MediaWiki\\Extension\\CalibrateAwesomeness\\": "src/"
},
"APIModules": {
"calibrateawesomeness": "MediaWiki\\Extension\\CalibrateAwesomeness\\ApiCalibrateAwesomeness"
},
Ensuite, vous créeriez un fichier extensions/CalibrateAwesomeness/src/ApiCalibrateAwesomeness.php
contenant une classe ApiCalibrateAwesomeness
qui s’étend, disons, ApiBase
, par ex.
namespace MediaWiki\Extension\CalibrateAwesomeness;
use ApiBase;
use Wikimedia\ParamValidator\ParamValidator;
class ApiCalibrateAwesomeness extends ApiBase {
public function execute() {
/* … */
}
public function getAllowedParams() {
return [
'level' => [
ParamValidator::PARAM_TYPE => 'integer',
ParamValidator::PARAM_REQUIRED => true,
]
];
}
}
Après avoir installé votre nouvelle extension sur Wikipédia en anglais, vous pouvez accéder à ce module en utilisant, par exemple, https://example.org/w/api.php?action=calibrateawesomeness&level=1000.
Si vous voulez utiliser une usine pour créer le module API, vous pouvez le définir comme ceci :
"APIModules": {
"calibrateawesomeness": {
"class": "MediaWiki\\Extension\\CalibrateAwesomeness\\ApiCalibrateAwesomeness",
"factory": "MediaWiki\\Extension\\CalibrateAwesomeness\\ApiCalibrateAwesomenessFactory::create"
},
où class
est la classe du module API et factory
est une partie callable.
Il y a plus d’options disponibles, voir ObjectFactory pour la syntaxe complète.