Jump to content

Příručka:$wgAPIModules

From mediawiki.org
This page is a translated version of the page Manual:$wgAPIModules and the translation is 100% complete.
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:[]

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.


Související odkazy