diff options
Diffstat (limited to 'includes/Rest/Module')
-rw-r--r-- | includes/Rest/Module/Module.php | 11 | ||||
-rw-r--r-- | includes/Rest/Module/SpecBasedModule.php | 11 |
2 files changed, 19 insertions, 3 deletions
diff --git a/includes/Rest/Module/Module.php b/includes/Rest/Module/Module.php index 31ac77196110..dcfc01af4550 100644 --- a/includes/Rest/Module/Module.php +++ b/includes/Rest/Module/Module.php @@ -445,4 +445,15 @@ abstract class Module { return $spec; } + + /** + * Return an array with data to be included in an OpenAPI "info" object + * describing this module. + * + * @see https://spec.openapis.org/oas/v3.0.0#info-object + * @return array + */ + public function getOpenApiInfo() { + return []; + } } diff --git a/includes/Rest/Module/SpecBasedModule.php b/includes/Rest/Module/SpecBasedModule.php index a9e35a3c1fe5..17f3cb9ce0f0 100644 --- a/includes/Rest/Module/SpecBasedModule.php +++ b/includes/Rest/Module/SpecBasedModule.php @@ -92,7 +92,7 @@ class SpecBasedModule extends MatcherBasedModule { * * @return array */ - private function loadDefinition(): array { + private function getModuleDefinition(): array { if ( $this->moduleDef !== null ) { return $this->moduleDef; } @@ -143,7 +143,7 @@ class SpecBasedModule extends MatcherBasedModule { */ public function getDefinedPaths(): array { $paths = []; - $moduleDef = $this->loadDefinition(); + $moduleDef = $this->getModuleDefinition(); foreach ( $moduleDef['paths'] as $path => $pSpec ) { $paths[$path] = []; @@ -156,7 +156,7 @@ class SpecBasedModule extends MatcherBasedModule { } protected function initRoutes(): void { - $moduleDef = $this->loadDefinition(); + $moduleDef = $this->getModuleDefinition(); // The structure is similar to OpenAPI, see docs/rest/mwapi.1.0.json foreach ( $moduleDef['paths'] as $path => $pathSpec ) { @@ -213,4 +213,9 @@ class SpecBasedModule extends MatcherBasedModule { return $info; } + + public function getOpenApiInfo() { + $def = $this->getModuleDefinition(); + return $def['info'] ?? []; + } } |