RESTBase/zh

RESTBase是支撑的缓存/存储API代理. 它的配置基于Swagger规范，其主存储后端使用Cassandra. 它支撑起了维基媒体REST内容API（ ），该API被VisualEditor用来检索页面HTML以便编辑. 为了提高性能（），每个维基上也有服务端点，例如在这个维基上.

作为代理，RESTBase本身不执行任何重要的内容处理. 相反，它在需要时请求来自后端服务的内容转换，并且通常（取决于配置）将其存储回来供以后检索. 对于高容量静态端点，大多数请求将直接从存储中满足.

其存储后端暴露了一个类似于Amazon DynamoDB和Google DataStore的RESTful存储API. 其最主要的实现使用的是Apache Cassandra. 值得注意的功能包括自动维护二级索引和一些轻量级的交易支持. 已经开发了一个SQLite后端，是软件包中的默认后端.

RESTBase自动发出关于所有存储和后端请求的statsd指标. 这为微服务架构中的性能和错误检测提供了良好的基线水平.

使用场景
我们的第一个用例是通过减少HTML大小来加快VisualEditor的速度，并消除Varnish缓存漏掉的问题. RESTBase将Parsoid元数据与页面的HTML分开存储，这使得后者的大小减少了约40%. RESTBase只向VE提供这种HTML，这大大降低了网络传输和处理的延迟. 从长远来看，我们的目标是将HTML的大小降低到目前PHP解析器输出的大小，使其适合普通的页面浏览. 这有可能使切换到可视化编辑瞬间完成，并且不需要任何滚动.

如果解析时间对你的维基来说不是一个紧迫的问题（例如，它没有复杂的模板或大量嵌套），那么直接访问Parsoid可能比引入RESTBase的这个依赖更有意义.

我们非常感兴趣的另一个用例是为小编辑和极快的VisualEditor保存提供一个章节级的编辑API，甚至比wikitext还要快.

文档

 * 浏览API路径
 * 概述
 * 架构
 * 浏览文档
 * 部署过程

参见

 * 通过加入和观看RESTBase-架构项目，关注有关RESTBase的架构讨论.
 * 在Phabricator报告问题，'RESTBase'项目
 * 原始RFC：与
 * 原始RFC：与
 * 原始RFC：与
 * 原始RFC：与