Manuel:$wgAPIModules

This page is a translated version of the page Manual:$wgAPIModules and the translation is 100% complete.
API: $wgAPIModules
Extensions de module API.
Introduit dans la version :1.11.0 (r25364)
Retiré dans la version :Encore utilisé
Valeurs autorisées :(tableau)
Valeur par défaut :[]

Détails

Tableau associatif qui fait correspondre le nom de module au nom de classe. Les modules d’extension peuvent surcharger les modules de base (qui sont initialisés dans ApiMain.php ).

Restreindre l'accès

Vous pouvez utiliser ce paramètre avec la valeur 'ApiDisabled' pour interdire l'accès a un module API donné .

$wgAPIModules['my-api-module-here'] = 'ApiDisabled';

Exemple avec une extension

Supposons que vous vouliez créer un module API pour calibrer le niveau d'excellence du wiki. Vous écririez une nouvelle extension, CalibrateAwesomeness, mettant ce qui suit dans votre fichier extension.json :

	"AutoloadNamespaces": {
		"MediaWiki\\Extension\\CalibrateAwesomeness\\": "src/"
	},
	"APIModules": {
		"calibrateawesomeness": "MediaWiki\\Extension\\CalibrateAwesomeness\\ApiCalibrateAwesomeness"
	},

Ensuite, vous créeriez un fichier extensions/CalibrateAwesomeness/src/ApiCalibrateAwesomeness.php contenant une classe ApiCalibrateAwesomeness qui étend, disons, ApiBase , par ex.

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,
			]
		];
	}
}

Après avoir installé votre nouvelle extension, vous pouvez accéder à ce module en utilisant, par exemple, https://example.org/w/api.php?action=calibrateawesomeness&level=1000.

Si vous voulez utiliser une fabrique pour créer le module API, vous pouvez le définir comme ceci :

	"APIModules": {
		"calibrateawesomeness": {
			"class": "MediaWiki\\Extension\\CalibrateAwesomeness\\ApiCalibrateAwesomeness",
			"factory": "MediaWiki\\Extension\\CalibrateAwesomeness\\ApiCalibrateAwesomenessFactory::create"
	},

class est la classe du module API et factory est une partie appelable. Il y a d'autres options disponibles, voir ObjectFactory pour la syntaxe complète.

Voir aussi