Manual:$wgAPIModules

From mediawiki.org
This page is a translated version of the page Manual:$wgAPIModules and the translation is 67% complete.
API: $wgAPIModules
API モジュール拡張機能。
導入されたバージョン:1.11.0 (r25364)
除去されたバージョン:使用中
許容される値:(配列)
既定値:[]

詳細

モジュール名をクラス名にマッピングする連想配列です。 拡張機能のモジュールは、コアのモジュール (ApiMain.php で初期化されます) をオーバーライドできます。

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 extension.json file:

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

Then you would create an extensions/CalibrateAwesomeness/src/ApiCalibrateAwesomeness.php file containing an ApiCalibrateAwesomeness class that extends, say, ApiBase , e.g.

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

新しい拡張機能を英語版ウィキペディアにインストールした場合は、以下のような URL でモジュールでアクセスできるようになります。例: https://example.org/w/api.php?action=calibrateawesomeness&level=1000

API モジュールの作成にファクトリを使用する場合は、以下のように定義できます:

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

Where class is the class of the API module and factory is some callable. There are more options available, see ObjectFactory for the full syntax.


関連項目