全周期的数据环境解决方案 - Macaca DataHub
DataHub 支持从本地开发阶段,到集成测试阶段,以及上线前验证阶段的一系列数据环境需求,研发与测试工程师只需面向 DataHub 管理数据即可。
DataHub 采用去中心化设计,本地研发阶段每项实例都拥有一份独立的数据,数据为明文,可随当前项目版本管理工具进行版本化归档,使得项目数据能做到随开随用,支持离线开发。
另外,每份数据都可向远端服务推送并同步,满足中心化协同的需要。
DataHub 采用单向数据流动的原则,使当前项目下的数据状态及时变更。
DataHub 将 Mock 数据与字段描述整合处理,自动生成接口文档。使得文档能够与交互字段随时保持一致。
DataHub 采用多场景设计,能够根据场景名称进行数据分组,同时提供了场景数据的增、删、改,可以通过 DataHub 的面板界面进行操作。
DataHub 兼备代理功能,会将最近请求的实时响应保存下来,便于归档。也就是说你可以通过已归档的快照随时复现当时的场景。
通过 npm 安装Macaca DataHub 命令行客户端:
$ npm i macaca-datahub -g
通过如下命令即可开启 DataHub 服务:
$ datahub server
$ docker run -it -p 9200:9200 -p 9300:9300 macacajs/macaca-datahub
字段名 | 类型 | 描述 | 默认 |
---|---|---|---|
port | Number | DataHub 服务启动端口 | 9200 |
mode | String | DataHub 服务启动模式 | 'prod' |
protocol | String | DataHub 服务交互协议 | 'http' |
database | String | DataHub 数据库地址 | $HOME |
store | String | 数据流归档文件路径 | undefined |
view | Object | 界面静态文件访问地址配置 | {} |
配置示例: macaca-datahub.config.js
module.exports = {
mode: 'local',
port: 7001,
store: path.resolve(__dirname, 'data'),
view: {
// set assets base url
assetsUrl: 'https://npmcdn.com/datahub-view@latest',
},
};
可以通过指定 [.js
|.json
] 后缀格式的配置文件。
$ datahub server -c path/to/config.js --verbose
DataHub 采用 标准的 JSON schema 语法 来描述接口,用以校验数据和自动生成文档,schema 需要以下格式:
{
"type": "object",
"required": [
"success"
],
"properties": {
"success": {
"type": "boolean"
},
"foo": {
"type": "object",
"description": "foo description",
"default": "",
"required": [
"bar"
],
"properties": {
"bar": {
"type": "string",
"description": "bar description"
}
}
}
}
}
webpack 项目可作为示例: webpack-datahub-sample
Macaca DataHub 可与所有类型的iOS, Android 和 Web 工程集成,以下有些参考示例:
- android-datahub-sample - Android 的例子
- ios-datahub-sample - iOS 的例子
- antd-sample - Ant Design 的例子
- angular-datahub-sample - Angular 的例子
Macaca DataHub 可通过中间件形式集成到 Webpack 项目中,请见中间件文档:datahub-proxy-middleware
More about egg-datahub
如果你使用 Docker ,可通过以下命令构建基础镜像:
$ docker build -t="macacajs/macaca-datahub" .
启动服务:
docker run -it -p 9200:9200 -p 9300:9300 macacajs/macaca-datahub
启动服务前建议挂载本地数据文件,方便数据存档:
$ docker run -it -v ~/.macaca-datahub/macaca-datahub.data:/root/.macaca-datahub/macaca-datahub.data -p 9200:9200 -p 9300:9300 macacajs/macaca-datahub
DataHub 提供多个语言平台的 SDK,方便与你的主工程或测试工程集成,也方便通过 API 形式操作 DataHub。
The MIT License (MIT)