Manual:$wgAPIModules

From MediaWiki.org
Jump to: navigation, search
Translate this page; This page contains changes which are not marked for translation.

Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎italiano • ‎日本語 • ‎polski • ‎português • ‎português do Brasil • ‎中文
Extensions: $wgAPIModules
API module extensions.
Introduced in version: 1.11.0 (r25364)
Removed in version: still in use
Allowed values: (array)
Default value: array()
Other settings: Alphabetical | By function

Details[edit]

Associative array mapping module name to class name. Extension modules may override the core modules (which are initialized in ApiMain.phpManual:ApiMain.php).

Example[edit]

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, ApiBaseManual:ApiBase.php, 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.

See also[edit]