RESTBase/ja

RESTBase は Wikimedia REST API をサポートするキャッシング / ストア API プロキシです. その設定はSwagger 仕様に基づき、そのプライマリ ストレージ バックエンドはCassandraを使用しています (訳注: Apache Cassandra). VisualEditor が使用するウィキメディア REST コンテンツ API「 」により、編集用にページの HTML を取得します. どのウィキでも例 こちらのウィキのように、パフォーマンス にサービス エンドポイントがあります.

プロキシとしてRESTBase自体はコンテンツ処理といえるものは行いません. その代わりに必要に応じて、バックエンド サービスにコンテンツ変換を要求し、典型的には (環境設定に依存し) 後日の検索用に保存します. 静的エンドポイントの大量処理の場合、ほとんどの要求は直接ストレージから対応されます.

Its storage backends expose a RESTful storage API similar to Amazon DynamoDB and Google DataStore. The primary implementation uses Apache Cassandra. Notable features include automatically maintained secondary indexes and some lightweight transaction support. A SQLite backend has been developed and is the default backend in the package.

RESTBase automatically emits statsd metrics about all storage and backend requests. This provides a good baseline level of performance and error instrumentation in a micro-service architecture.

使用事例
Our first use case is speeding up VisualEditor by reducing HTML size, and eliminating Varnish cache misses. RESTBase stores Parsoid metadata separately from the HTML of the page, which reduces the size of the latter by about 40%. RESTBase provides only this HTML to VE, which reduces network transfer and processing latency significantly. In the longer term, we are aiming to bring down the size of the HTML to that of current PHP parser output to make it suitable for regular page views. This has the potential to make switching to visual editing instantaneous and free of any scrolling.

If parse time is not a pressing concern for your wiki (for example it does not have complex templates or large transclusion counts), then accessing Parsoid directly may make more sense than introducing a dependency on RESTBase.

Another use case we are strongly interested in is providing a section-level editing API for micro-contributions and extremely fast VisualEditor saves, even faster than wikitext.

説明文書

 * Browse the API endpoints
 * 概要
 * アーキテクチャ
 * Browse the documentation
 * Deployment process

インストール

 * RESTBase/インストール

関連項目

 * Follow architectural discussions about RESTBase by joining & watching the RESTBase-architecture project
 * Report issues on Phabricator, project 'RESTBase'
 * Original requests for comments: and
 * Original requests for comments: and
 * Original requests for comments: and
 * Original requests for comments: and