Skip to content

Latest commit

 

History

History
220 lines (154 loc) · 6.77 KB

README.zh.md

File metadata and controls

220 lines (154 loc) · 6.77 KB

Macaca DataHub

English Edition


NPM version build status Test coverage node version npm download docker pull

全周期的数据环境解决方案 - Macaca DataHub

介绍

多环节覆盖

DataHub 支持从本地开发阶段,到集成测试阶段,以及上线前验证阶段的一系列数据环境需求,研发与测试工程师只需面向 DataHub 管理数据即可。

去中心化

DataHub 采用去中心化设计,本地研发阶段每项实例都拥有一份独立的数据,数据为明文,可随当前项目版本管理工具进行版本化归档,使得项目数据能做到随开随用,支持离线开发。

另外,每份数据都可向远端服务推送并同步,满足中心化协同的需要。

数据流动管理

DataHub 采用单向数据流动的原则,使当前项目下的数据状态及时变更。

文档一致性

DataHub 将 Mock 数据与字段描述整合处理,自动生成接口文档。使得文档能够与交互字段随时保持一致。

场景管理

DataHub 采用多场景设计,能够根据场景名称进行数据分组,同时提供了场景数据的增、删、改,可以通过 DataHub 的面板界面进行操作。

快照录入

DataHub 兼备代理功能,会将最近请求的实时响应保存下来,便于归档。也就是说你可以通过已归档的快照随时复现当时的场景。

更多请到 Macaca 官网

安装

通过 npm 安装Macaca DataHub 命令行客户端:

$ npm i macaca-datahub -g

一键启动

通过如下命令即可开启 DataHub 服务:

$ datahub server

使用 Docker 启动

$ 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

Schema 语法

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 工程集成,以下有些参考示例:

中间件集成

Macaca DataHub 可通过中间件形式集成到 Webpack 项目中,请见中间件文档:datahub-proxy-middleware

Egg.js集成

More about egg-datahub

构建 Docker 镜像

如果你使用 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

SDK 接入

DataHub 提供多个语言平台的 SDK,方便与你的主工程或测试工程集成,也方便通过 API 形式操作 DataHub。

License

The MIT License (MIT)