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).
Omezení přístupu
Toto nastavení můžete použít s hodnotou 'ApiDisabled' k odepření přístupu k danému modulu API.
$wgAPIModules['my-api-module-here'] = 'ApiDisabled';
Příklad s příponou
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.