Kézikönyv:$wgAPIModules
| API: $wgAPIModules | |
|---|---|
| Az API-modul kiterjesztései. |
|
| Bevezetve: | 1.11.0 (r25364) |
| Eltávolítva: | használatban |
| Megengedett értékek: | (tömb) |
| Alapértelmezett érték: | [] |
| Egyéb beállítások: Betűrendben | Funkció szerint | |
Részletek
Az asszociatív tömb a modulnevet az osztálynévhez rendeli hozzá. A kiterjesztések moduljai felülírhatják a gyári modulokat (amelyek a $ApiMain-ben vannak inicializálva).
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';
Példa
Tételezzük fel, hogy a wiki remekségi szintjét kalibráló API-modult szeretnél készítenél.
Ehhez el kell készítened a CalibrateAwesomeness-t, majd a CalibrateAwesomeness.php-ban el kell helyezned az alábbi kódot:
"AutoloadNamespaces": {
"MediaWiki\\Extension\\CalibrateAwesomeness\\": "src/"
},
"APIModules": {
"calibrateawesomeness": "MediaWiki\\Extension\\CalibrateAwesomeness\\ApiCalibrateAwesomeness"
},
Ezután el kell készítened az ApiCalibrateAwesomeness.php-t, amelyben az ApiCalibrateAwesomeness osztály kibontja mondjuk az $ApiBase-t; például:
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,
]
];
}
}
Az angol Wikipédiára való telepítés után a modult a https://example.org/w/api.php?action=calibrateawesomeness&level=1000 címen érheted el.
Ha az API-modul létrehozásához egy gyármodult használnál, azt az alábbi módon definiálhatod:
"APIModules": {
"calibrateawesomeness": {
"class": "MediaWiki\\Extension\\CalibrateAwesomeness\\ApiCalibrateAwesomeness",
"factory": "MediaWiki\\Extension\\CalibrateAwesomeness\\ApiCalibrateAwesomenessFactory::create"
},
ahol a $class az API-modul osztálya, a $factory pedig callable érték. There are more options available, see ObjectFactory for the full syntax.