This is an initiative of the Core Platform Team. Original document at [[ https://www.mediawiki.org/wiki/Core_Platform_Team/Initiatives/Wikimedia_REST_API | Wikimedia REST API ]], copied here for ease of review.
This project would consolidate our multiple per-project API endpoints to make it easier for internal and third-party developers to build on our platform.
# Significance and Motivation
Our offerings for APIs are at the same time both too specific and too general.
We have many different API endpoints, with different calling conventions, but their data types tend to focus around entire documents and document versions. Developers need to program or re-use parsers to extracted meaningful structure out of the wikitext or HTML.
The outcome of this project will be a single virtual API service that developers can use for all their Wikipedia project needs.
# Baseline Metrics
* many APIs
* different calling paradigms (RPC, REST, query, ...)
* document-oriented datatypes
* User-Agent for client IDs
* Sessions for user IDs
# Target Metrics
* A single API server, api.wikipedia.org
* Unified authorization
* A single, RESTful programming paradigm
* Endpoint paths for language ("en", "fr")
* Endpoint paths for projects ("travel", "commons", "wikipedia", "dictionary", "data")
* Per-project data types (hotel listings, dictionary entries, videos, images, discussion threads, ...)
* Unified documentation
* Developer Advocacy
* Product Infrastructure
# Known Dependencies/Blockers
* Epic 1 of the Core REST API, to have a basic document-level REST API available for all projects
* OAuth 2.0 with client IDs (API keys)
* RESTBase as the API consolidator/aggregator
* availability of api.wikipedia.org
* documentation portal