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
Tableau associatif qui fait correspondre le nom de module au nom de classe. Les modules d’extension peuvent surcharger les modules de base (qui sont initialisés dans ApiMain.php ).
Restreindre l'accès
Vous pouvez utiliser ce paramètre avec la valeur 'ApiDisabled' pour interdire l'accès a un module API donné .
$wgAPIModules['my-api-module-here'] = 'ApiDisabled';
Exemple avec une extension
Supposons que vous vouliez créer un module API pour calibrer le niveau d'excellence 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 é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, 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 fabrique 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 appelable.
Il y a d'autres options disponibles, voir ObjectFactory pour la syntaxe complète.