Podręcznik:$wgAPIModules
| API: $wgAPIModules | |
|---|---|
| Rozszerzenia modułów API. |
|
| Wprowadzono w wersji: | 1.11.0 (r25364) |
| Usunięto w wersji: | nadal w użyciu |
| Dozwolone wartości: | (tablica) |
| Domyślna wartość: | [] |
| Inne ustawienia: Alfabetycznie | Według funkcji | |
Szczegóły
Tablica asocjacyjna łącząca nazwę modułu z nazwą klasy. Extension modules may override the core modules (which are initialized in ApiMain.php).
Restricting access
You can use this setting with the 'ApiDisabled' value to deny access to a given API module.
$wgAPIModules['my-api-module-here'] = 'ApiDisabled';
Przykład
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,
]
];
}
}
After installing your new extension, you could then access that module by using, e.g., https://example.org/w/api.php?action=calibrateawesomeness&level=1000.
If you want to use a factory for creating the API module, you can define it like this:
"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.