2.2.5 数据集类型

数据集分为三种类型,分别是动态数据集、静态数据集和统计数据集。功能说明下建表。

类型 功能
动态数据集 实现数据的增删改查,支持五种后端数据源,包括表、sql、视图、存储过程和服务
静态数据集 存储静态数据
生成vo,可用于服务的请求返回
统计数据集 无代码实现对动态数据集的分组统计,支持表间关联查询

2.2.5.1 动态数据集

1 动态数据集支持五种数据来源

动态数据集在获取数据时,支持以下五种数据源。

数据源 获取数据 提交数据
数据表 查询数据表 更新本表
sql 执行一个sql语句,相同服务器的跨库查询时,在表名前加上数据库名.实例名 如果sql中涉及多张表,支持设置一张表为更新数据表
视图 查询视图 如果视图中涉及多张表,支持设置一张表为更新数据表
存储过程 执行一个存储过程,输出参数仅支持数据集和记录数。相同服务器的跨库调用时,在存储过程名称前加上数据库.实例名 如果存储过程中涉及多张表,支持设置一张表为更新数据表
服务 调用内部服务(gox5服务)或外部服务(openapi服务)获取数据 支持设置一张表为更新数据表
2 动态数据集的功能
  • 查询数据:从不同的数据源中获取数据,数据中必须包括动态数据集的所有列标识
  • 更新数据:支持更新一张数据表,数据源为数据表时,无需设置,系统自动更新本表。其他数据源通过设置更新数据表以及字段映射,系统进行更新。
  • 扩展功能:动态数据集支持定义数据集参数,数据集参数的说明参考《2.5.1——2.5.6》六节。
3 不同数据源对动态数据集查询功能的支持
视图 sql 存储过程 服务
指定返回列 Y Y Y Y Y
去重 Y Y Y Y Y
字段过滤 Y Y Y N N
字段排序 Y Y Y Y Y
数据分页 Y Y Y Y Y
关联查询 Y Y Y N N
子查询 Y Y Y N N
4 服务数据源

在五种数据源中,除了服务以外的其他四种数据源均直接来自于数据库。服务的数据不直接来自数据库,而是来自内部服务(gox5服务)或外部服务(openapi服务)。

  • 内部服务配置
配置项 说明 案例
服务名 调用当前应用的服务时不填,调用租户内其他应用的服务时,填入应用名,例如:entry
请求路径 服务调用的路径 /main/fuwu/queryorder
HTTP方法 服务调用的 http 方法,包括GET、POST、PUT、DELETE GET
API文档 服务定义文档/{module}/{name}.service.m,即服务所在的服务模型文件 /main/fuwu.service.m
  • 外部服务配置
配置项 说明 案例
服务名 有3种类型
请求路径 服务调用的路径
HTTP方法 服务调用的 http 方法,包括GET、POST、PUT、DELETE GET
API文档 服务定义文档,如果上传json文件,需要通过 service.m 文件引用url http://host/oenapi.json ,通过url获取一个openapi的json定义
  • 服务返回配置

服务返回配置可以配置三项内容,数据、总记录数和错误信息。

配置项 说明 案例
数据 从body中获取返回的数据
如果返回json数组,则无需配置;如果返回json数据,则设置body为jsonpath表达式,获取其中返回的数据
设置Body为 $.data
总记录数 从header或body中获取总记录数,用于分页显示
在header中返回,则设置header;
在body中返回,则设置body为jsonpath表达式,获取其中的总记录数
设置Header为Content-Range
错误 从body中获取返回的错误信息,设置body为jsonpath表达式,获取其中的错误信息 设置Body为$.error

下面是两种返回数据的形式

  • 返回json数组(每个元素是数据集的一行)

      [
          {
              "fid": "1",
              "fname": "11"
          },
          {
              "fid": "2",
              "fname": "22"
          }
      ]
    
  • 返回json数据,data中是返回的数据

      {
          "total": 23,
          "data": [
              {
                  "fid": "1",
                  "fname": "11"
              },
              {
                  "fid": "2",
                  "fname": "22"
              }
          ],
          "error": "error code 123"
      }
    

上面通过jsonpath获取的结果,通过正则表达式,可以进一步获取其中的内容。

2.2.5.2 静态数据集

和动态数据集对应,静态数据集的数据不存储在数据库中,存储在文件中。在运行时,不提供对原始数据的增删改。动态数据集生成model,静态数据集生成vo,因此静态数据集常用于作为服务的请求返回。

2.2.5.3 统计数据集

统计数据集用无代码的方式实现对动态数据集的分组统计,同时支持表间关联查询、查询时过滤,统计后过滤、排序等功能。

results matching ""

    No results matching ""

    results matching ""

      No results matching ""