Manual:$wgAPIModules
API: $wgAPIModules | |
---|---|
API module extensions. |
|
Introducido en la versión: | 1.11.0 (r25364) |
Eliminado en la versión: | aún se usa |
Valores permitidos: | (array) |
Valor predeterminado: | [] |
Otras configuraciones: Alfabéticamente | Por Función |
Detalles
Associative array mapping module name to class name. Extension modules may override the core modules (which are initialized in ApiMain.php ).
Ejemplo
Suppose you wanted to create an API module to calibrate the wiki's awesomeness level.
You would write a new extension, CalibrateAwesomeness
, putting the following in your CalibrateAwesomeness.php
file:
$wgAutoloadClasses['ApiCalibrateAwesomeness'] = __DIR__ . 'ApiCalibrateAwesomeness.php';
$wgAPIModules['calibrateawesomeness'] = 'ApiCalibrateAwesomeness';
Then you would create an ApiCalibrateAwesomeness.php
file containing an ApiCalibrateAwesomeness
class that extends, say, ApiBase
, e.g.
class ApiCalibrateAwesomeness extends ApiBase {
public function execute() {
...
}
public function getAllowedParams() {
return array(
'level' => array (
ApiBase::PARAM_TYPE => 'integer',
ApiBase::PARAM_REQUIRED => true
)
);
}
}
After installing your new extension on the English Wikipedia, you could then access that module by using, e.g., https://en.wikipedia.org/w/api.php?action=calibrateawesomeness&level=1000.
If you want to use a factory for creating the API module, you can define it like this:
$wgAPIModules['calibrateawesomeness'] = [
'class' => 'ApiCalibrateAwesomeness',
'factory' => 'ApiCalibrateAwesomenessFactory::create',
];
where class
is the class of the API module and factory
is some callable.
There are more options available, see ObjectFactory for the full syntax.