手册:$wgAPIModules
Appearance
| API: $wgAPIModules | |
|---|---|
| API模块的扩展。 |
|
| 引进版本: | 1.11.0(r25364) |
| 移除版本: | 仍在使用 |
| 允许的值: | (数组) |
| 默认值: | [] |
| 其他设置: 按首字母排序 | 按功能排序 | |
详情
將模組名稱對應到類別名稱的關聯陣列。 擴充功能可以覆蓋核心模組(其在 ApiMain.php 中初始化)。
限制存取
您可以將此設定與「ApiDisabled」值一起使用,用以拒絕存取給定的API模組。
$wgAPIModules['my-api-module-here'] = 'ApiDisabled';
以一個擴充功能作為示例
假設你想建立一個 API 模組來校準維基百科的優秀程度。
你需要寫一個新的副檔名 CalibrateAwesomeness,並將以下內容放入你的 extension.json 檔案中:
"AutoloadNamespaces": {
"MediaWiki\\Extension\\CalibrateAwesomeness\\": "src/"
},
"APIModules": {
"calibrateawesomeness": "MediaWiki\\Extension\\CalibrateAwesomeness\\ApiCalibrateAwesomeness"
},
然後,您可以建立一個 extensions/CalibrateAwesomeness/src/ApiCalibrateAwesomeness.php 文件,其中包含一個 ApiCalibrateAwesomeness 類別,該類別可以擴充,例如 ApiBase 類。
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,
]
];
}
}
安裝新擴充功能後,您可以使用例如 https://example.org/w/api.php?action=calibrateawesomeness&level=1000 來存取該模組。
如果要使用工廠模式建立 API 模組,可以這樣定義:
"APIModules": {
"calibrateawesomeness": {
"class": "MediaWiki\\Extension\\CalibrateAwesomeness\\ApiCalibrateAwesomeness",
"factory": "MediaWiki\\Extension\\CalibrateAwesomeness\\ApiCalibrateAwesomenessFactory::create"
},
其中 class 是 API 模組的類別、factory 是某個 可呼叫物件。
還有更多選項,請參閱 ObjectFactory 以取得完整語法。