aboutsummaryrefslogtreecommitdiffstats
path: root/includes/Rest/Module
diff options
context:
space:
mode:
Diffstat (limited to 'includes/Rest/Module')
-rw-r--r--includes/Rest/Module/Module.php11
-rw-r--r--includes/Rest/Module/SpecBasedModule.php11
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'] ?? [];
+ }
}