wiki.techinc.nl/docs/rest/discovery-1.0.json
daniel 84fe1b9ccd REST: Introduce discovery endpoint
The discovery endpoint provides basic information about accessing the
wiki's APIs, as well as a directory of available modules.

Bug: T365753
Change-Id: I161aa68566da91867b650e13c8aadc87cd0c428c
2024-09-20 17:02:59 +00:00

81 lines
2.5 KiB
JSON

{
"$schema": "http://json-schema.org/draft-06/schema#",
"$id": "https://www.mediawiki.org/schema/discovery-1.0",
"title": "MediaWiki REST API discovery document",
"description": "Discovery documents provide all information needed to locate and access REST APIs on a given wiki.",
"type": "object",
"required": [ "info", "servers", "modules" ],
"properties": {
"mw-discovery": {
"description": "The version of the MediaWiki discovery schema used by the discovery document.",
"type": "string"
},
"info": {
"$ref": "#/definitions/Info"
},
"servers": {
"description": "A list of servers that can be used to access the APIs.",
"type": "array",
"minItems": 1,
"item": { "$ref": "https://spec.openapis.org/oas/3.0/schema/2021-09-28#/definitions/Server" }
},
"modules": {
"description": "Information about the API modules available for interacting with the wiki. Depends on the extensions installed on the wiki, and may further vary with the wiki's version and configuration.",
"type": "object",
"minProperties": 1,
"additionalProperties": { "$ref": "#/definitions/Module" }
}
},
"definitions": {
"Info": {
"description": "Information about the wiki site that offers the API",
"type": "object",
"required": [
"title",
"mediawiki"
],
"properties": {
"title": {
"description": "The name of the wiki",
"type": "string"
},
"license": {
"$ref": "https://spec.openapis.org/oas/3.0/schema/2021-09-28#/definitions/License"
},
"contact": {
"$ref": "https://spec.openapis.org/oas/3.0/schema/2021-09-28#/definitions/Contact"
},
"mediawiki": {
"description": "The version of the MediaWiki software serving the document",
"type": "string"
}
}
},
"Module": {
"title": "REST API Module",
"description": "Information about a given REST module available of the wiki. Corresponds to the https://www.mediawiki.org/schema/mwapi-1.0 schema.",
"type": "object",
"required": [
"info",
"base",
"spec"
],
"properties": {
"info": {
"$ref": "#/definitions/ModuleInfo"
},
"base": {
"description": "The base path of the module, to be appended to the server URL. This may or may not be a functioning endpoint, as defined by the module's specification.",
"type": "string"
},
"spec": {
"description": "URL of the module's OpenAPI specification. The version of OpenAPI used may vary.",
"type": "string"
}
}
},
"ModuleInfo": {
"$ref": "https://www.mediawiki.org/schema/mwapi-1.0#/definitions/Info"
}
}
}