Manual:$wgAPIModules

Details
Associative array mapping module name to class name. Extension modules may override the core modules (which are initialized in ).

Example
Suppose you wanted to create an API module to calibrate the wiki's awesomeness level. You would write a new extension,  , putting the following in your   file:

Then you would create an   file containing an   class that extends, say,  , e.g.

After installing your new extension on the English Wikipedia, you could then access that module by using, e.g., https://en.wikipedia.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:

where   is the class of the API module and <tvar|2> </> is some [<tvar|url>https://php.net/language.types.callable</> callable]. There are more options available, see <tvar|1></> for the full syntax.