RESTBase

RESTBase is a caching / storing API proxy backing the . Its configuration is based on Swagger specs, and its primary storage backend is using Cassandra. It powers " ", the Wikimedia REST content API used by VisualEditor to retrieve page HTML for editing. For performance () service endpoints are also available on each wiki, e.g. [https:///api/rest_v1/page/html/MediaWiki on this wiki].

As a proxy, RESTBase does not perform any significant content processing itself. Instead, it requests content transformations from backend services when needed, and typically (depending on configuration) stores it back for later retrieval. For high-volume static end points most requests will be satisfied directly from storage.

Its storage backends expose a RESTful [https://github.com/wikimedia/restbase-mod-table-spec/blob/master/README.md storage API] similar to [http://aws.amazon.com/documentation/dynamodb/ Amazon DynamoDB] and [https://developers.google.com/datastore/ Google DataStore]. The primary implementation uses Apache Cassandra. Notable features include automatically maintained secondary indexes and some lightweight transaction support. A [https://github.com/wikimedia/restbase-mod-table-sqlite SQLite backend] has been developed and is the default backend in the [<tvar|url2>https://github.com/wikimedia/restbase</> package].

RESTBase automatically emits 1>wikitech:statsd</>|statsd metrics about all storage and backend requests. This provides a good baseline level of performance and error instrumentation in a micro-service architecture.

Documentation

 * Browse the API endpoints
 * Overview
 * Architecture
 * Browse the documentation
 * Deployment process
 * Deployment process