Jump to content

手册:$wgAPIModules

本頁使用了標題或全文手工轉換
From mediawiki.org
This page is a translated version of the page Manual:$wgAPIModules and the translation is 100% complete.
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 以取得完整語法。

參見