Manual:$wgAPIModules
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.