Příručka:$wgAPIModules
API: $wgAPIModules | |
---|---|
Rozšíření modulů API. |
|
Zavedeno od verze: | 1.11.0 (r25364) |
Odstraněno od verze: | stále se používá |
Povolené hodnoty: | (pole) |
Výchozí hodnota: | [] |
Další nastavení: Podle abecedy | Podle funkce |
Podrobnosti
Název modulu mapování asociativního pole na název třídy. Rozšiřující moduly mohou přepsat základní moduly (které jsou inicializovány v ApiMain.php ).
Příklad
Předpokládejme, že jste chtěli vytvořit modul API pro kalibraci úrovně úspěšnosti wiki.
Napsali byste novou příponu CalibrateAwesomeness
a do souboru extension.json
vložili následující:
"AutoloadNamespaces": {
"MediaWiki\\Extension\\CalibrateAwesomeness\\": "src/"
},
"APIModules": {
"calibrateawesomeness": "MediaWiki\\Extension\\CalibrateAwesomeness\\ApiCalibrateAwesomeness"
},
Pak byste vytvořili soubor extensions/CalibrateAwesomeness/src/ApiCalibrateAwesomeness.php
obsahující třídu ApiCalibrateAwesomeness
, která rozšiřuje, řekněme, ApiBase
, např.
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,
]
];
}
}
Po instalaci nového rozšíření můžete k tomuto modulu přistupovat pomocí např. https://example.org/w/api.php?action=calibrateawesomeness&level=1000.
Pokud chcete pro vytvoření modulu API použít továrnu, můžete ji definovat takto:
"APIModules": {
"calibrateawesomeness": {
"class": "MediaWiki\\Extension\\CalibrateAwesomeness\\ApiCalibrateAwesomeness",
"factory": "MediaWiki\\Extension\\CalibrateAwesomeness\\ApiCalibrateAwesomenessFactory::create"
},
Kde class
je třída modulu API a factory
je nějaká povolatelná.
K dispozici je více možností, viz ObjectFactory pro úplnou syntaxi.