Description
The MediaWiki Interfaces team recently introduced a new pattern for defining self-contained REST API Modules within the MediaWiki REST framework for REST APIs. REST API modules represent collections of related endpoints, which can be independently managed from other REST API modules. They create controlled flexibility through federated ownership, while also ensuring that related capabilities are self-contained, can be independently versioned, and can share object definitions and the like. They are therefore particularly well-suited for extension REST API definitions, which are already self contained.
The CheckUser REST API endpoints are particularly well-suited to become an API Module, because it is not available for all MediaWIki users and developers. By breaking out these endpoints into their own API module, we can present additional context to users to explain their restricted access. Additionally, creating an API module is a prerequisite for future changes to allow for more programmatically restricted API access via API audiences (WIP).
Conditions of acceptance
- CheckUser API module is created
- A high(er) quality spec is generated for CheckUser API:
- See: https://www.mediawiki.org/wiki/Documentation/API_documentation/Reference
- A high level module description is created, with a link to the CheckUser extension documentation.
- Endpoints all have short descriptions and summaries
- Parameter descriptions are helpful to human readers
- Schemas are defined, with useful descriptions for all properties
- Examples are created where needed
- CheckUser API module is included in the spec discovery list (for now; confirm this behavior with the PSI team)
- CheckUser API module is NOT available in the REST Sandbox dropdown (module override required to keep it hidden)
- CheckUser endpoints are removed from the "flat" MediaWiki definition