关系建模OpenAPI
此手册用于记录大数据开发与管理平台中,关系建模产品所有对外开放的OpenAPI,阅读此手册,你将了解关系建模产品开放的OpenAPI能力与调用方法。
一、 数据传输公共参数
1.1 响应格式
名称 | 类型 | 描述 |
---|---|---|
code | Number | 响应码:非0表示失败。 |
reqId | String | 请求ID |
cost | Number | 耗时,单位:ms |
msg | String | 响应消息 |
result | Object | 响应结果 |
1.2 响应码
响应码 | 说明 |
---|---|
1000 | openapi请求参数为空! |
1001 | 请求参数必须extends OpenapiBaseRequest |
1002 | 参数[{}]不能为空 |
1003 | 获取用户[{}]信息失败 |
1004 | 用户[{}]不存在 |
1005 | 获取产品信息失败,产品[{}]! |
1006 | 用户[{}]产品列表为空 |
1007 | 用户[{}]不在产品里, 产品[{}]! |
1008 | 产品[{}]不存在 |
1.3 枚举列表
1.3.1 BizObjectTypeEnum
枚举值 | 类型 | 名称 |
---|---|---|
SUBJECT | String | 一般目录 |
BUSINESS_OBJECT | String | 业务对象 |
1.3.2 BizObjectStatusEnum
枚举值 | 类型 | 名称 |
---|---|---|
DRAFT | String | 草稿 |
PUBLISHED | String | 已上线 |
1.3.3 DataEntityTypeEnum
枚举值 | 类型 | 名称 |
---|---|---|
TABLE | String | 表 |
ENTITY | String | 实体 |
1.3.4 SourceTypeEnum
枚举值 | 类型 | 名称 |
---|---|---|
DDM | String | 数据来源于datablau |
ERM | String | 数据来源于关系建模 |
1.4 参数实体
1.4.1 PageInfo
分页查询结果
字段 | 类型 | 描述 |
---|---|---|
currentPage | Number | 当前页数,从1开始 |
pageSize | Number | 每页显示条数 |
count | Number | 总条数 |
contents | Array < Object > | 当前页结果 |
1.4.2 SimpleUserVO
用户信息
字段 | 类型 | 描述 |
---|---|---|
String | 账号邮箱 | |
fullName | String | 用户名 |
1.4.3 KeyValuePairVO
用户信息
字段 | 类型 | 描述 |
---|---|---|
key | String | 键 |
value | String | 值 |
1.4.4 BizObjectBriefVO
用户信息
字段 | 类型 | 描述 |
---|---|---|
id | Long | 业务对象ID |
name | String | 业务对象名称 |
path | String | 业务对象全路径 |
1.5 响应实体列表
1.5.1 BizObjectTreeVO
字段 | 类型 | 描述 |
---|---|---|
bizObjectId | Long | 主题域分组/主题域/业务对象唯一id |
name | String | 任务名称 |
level | Integer | 当前节点层级:1:L1主题域分组,2:L2主题域, 3:L3业务对象 |
code | String | 当前节点编码 |
description | String | 当前节点 |
parentId | Long | 父节点唯一id |
children | List < BizObjectTreeVO > | 当前节点的子节点 |
二、OpenAPI列表
2.1 OpenAPI总览
模块 | 名称 | 支持版本 | 状态 | 请求方法 | 请求路径 |
---|---|---|---|---|---|
业务对象管理 | 业务对象目录树 | v1.0.0 | 已发布 | GET | /erm/api/openapi/business-object/v1/directory/tree |
业务对象管理 | 分页获取主题域分组/主题域/业务对象列表 | v1.0.0 | 已发布 | GET | /erm/api/openapi/business-object/v1/list |
业务对象管理 | 获取主题域分组/主题域/业务对象详情 | v1.0.0 | 已发布 | GET | /erm/api/openapi/business-object/v1/detail |
业务对象管理 | 分页获取业务对象下绑定的实体列表 | v1.0.0 | 已发布 | GET | /erm/api/openapi/business-object/v1/entity/list |
模型管理 | 分页获取实体下的属性(字段)列表 | v1.0.0 | 已发布 | GET | /erm/api/openapi/entity/v1/column/list |
模型管理 | 批量获取属性(字段)列表 | v1.0.0 | 已发布 | GET | /erm/api/openapi/entity/v1/column/batch-get |
2.1.1 业务对象目录树
GET /erm/api/openapi/business-object/v1/directory/tree 版本:1.0 描述:获取业务对象目录树 URL参数/请求体
名称 | 类型 | 描述 | 必须 | 默认值 |
---|---|---|---|---|
pgId | Number | 项目组ID | 是 | |
keyword | String | 模糊搜索关键字L1、L2、L3都支持搜索,若子节点搜索命中,则保留其父目录结构 | 否 |
请求实例 curl -X GET http://easy-openapi.example.com/openapi/erm/api/openapi/business-object/v1/directory/tree?pgId=1&keyword=example 响应体
名称 | 类型 | 描述 |
---|---|---|
code | Number | 响应码:非0表示失败。 |
reqId | String | 请求ID |
msg | String | 响应消息 |
cost | Number | 耗时,单位:ms |
result | List < BizObjectTreeVO > | 响应结果 |
BizObjectTreeVO
名称 | 类型 | 描述 |
---|---|---|
bizObjectId | Long | 主题域分组/主题域/业务对象唯一ID |
name | String | 任务名称 |
level | Integer | 当前节点层级:1:L1主题域分组,2:L2主题域, 3:L3业务对象 |
type | BizObjectTypeEnum | 当前节点类型:SUBJECT :一般目录BUSINESS_OBJECT :业务对象 |
bizObjectCode | String | 当前节点编码 |
description | String | 当前节点定义 |
parentId | Long | 父节点唯一ID |
children | List < BizObjectTreeVO > | 当前节点的子节点 |
响应体实例
{ "code": 0, "result": [ { "bizObjectId": 1, "level": 1, "type": "SUBJECT", "name": "主题域分组1", "bizObjectCode": "RD-SG01", "description": "主题域分组1", "parentId": -1, "children": [] }, { "bizObjectId": 2, "level": 1, "type": "SUBJECT", "name": "主题域分组2", "bizObjectCode": "RD-SG02", "description": "主题域分组2", "parentId": -1, "children": [ { "bizObjectId": 3, "level": 2, "type": "SUBJECT", "name": "主题域2-1", "bizObjectCode": "RD-SD000001", "description": "主题域分组2下的主题域1", "parentId": 2, "children": [ { "bizObjectId": 4, "level": 3, "type": "BUSINESS_OBJECT", "name": "业务对象1", "bizObjectCode": "RD-BO000001", "description": "主题域1下的业务对象1", "parentId": 3, "children": [] }, { "bizObjectId": 5, "level": 3, "type": "BUSINESS_OBJECT", "name": "业务对象2", "bizObjectCode": "RD-BO000002", "description": "主题域1下的业务对象2", "parentId": 3, "children": [] } ] } ] } ], "reqId": "dd79bede2a2c490eac1992df64a4039b", "cost": 3 }
2.1.2 分页获取主题域分组/主题域/业务对象列表
GET /erm/api/openapi/business-object/v1/list 版本:1.0 描述:获取主题域分组/主题域/业务对象详情 URL参数/请求体
名称 | 类型 | 描述 | 必须 | 默认值 |
---|---|---|---|---|
pgId | Number | 项目组ID | 是 | |
currentPage | Number | 当前页 | 否 | 1 |
pageSize | Interger | 每页大小 | 否 | 25 |
keyword | String | 模糊搜索关键字 | 否 |
响应体
名称 | 类型 | 描述 |
---|---|---|
code | Number | 响应码:非0表示失败 |
reqId | String | 请求ID |
msg | String | 响应消息 |
cost | Number | 耗时,单位:ms |
result | List < BizObjectDetailVO > | 响应结果 |
BizObjectDetailVO
名称 | 类型 | 描述 |
---|---|---|
bizObjectId | Long | 主题域分组/主题域/业务对象唯一ID |
name | String | 中文名称 |
enName | String | 英文名称 |
type | BizObjectTypeEnum | 类型:SUBJECT :主题域分组/主题域BUSINESS_OBJECT : 业务对象 |
level | Integer | 层级:1:L1主题域分组2:L2主题域3:L3业务对象 |
bizObjectCode | String | 编码 |
description | String | 定义 |
creator | SimpleUserVO | 创建人 |
modifier | SimpleUserVO | 修改人 |
parentId | Long | 上级id |
parentName | String | 上级中文名称 |
parentCode | String | 上级编码 |
version | String | 版本 |
createTime | String | 创建时间 |
updateTime | String | 更新时间 |
status | BizObjectStatusEnum | 业务对象状态:DRAFT : 草稿PUBLISHED : 已上线 |
dataOwner | String | 数据owner (主题域/业务对象) |
dataOwnerDept | String | 数据owner部门 (业务对象) |
dataSteward | String | 数据管家 (业务对象) |
dataManager | String | 数据治理管理员(业务对象) |
bizSourceSystem | String | 业务来源系统名称(业务对象) |
响应体实例
{ "code": 0, "result": { "count": 3, "currentPage": 1, "pageSize": 25, "contents": [ { "bizObjectId": 1, "level": 1, "type": "SUBJECT", "name": "主题域分组1", "enName": "subject_group1", "bizObjectCode": "RD-SG01", "description": "业务对象测试1", "creator": { "email": "abc@example.com", "fullName": "张三" }, "modifier": { "email": "abc@example.com", "fullName": "张三" }, "createTime": "2024-05-23 15:05:41", "updateTime": "2024-05-23 15:05:41", "status": "DRAFT", "parentId": -1, "parentName": "", "parentCode": "RD-SD000001", "version": "v1.0", "dataOwner": "", "dataOwnerDept": "", "dataSteward": "", "dataManager": "", "bizSourceSystem": "" }, { "bizObjectId": 12, "level": 2, "type": "SUBJECT", "name": "主题域1", "enName": "subject1", "bizObjectCode": "RD-SD000005", "description": "业务对象测试1", "creator": { "email": "abc@example.com", "fullName": "张三" }, "modifier": { "email": "abc@example.com", "fullName": "张三" }, "createTime": "2024-05-23 15:05:41", "updateTime": "2024-05-23 15:05:41", "status": "DRAFT", "parentId": 1, "parentName": "主题域分组1", "parentCode": "RD-SG01", "version": "v1.0", "dataOwner": "数据owner123", "dataOwnerDept": "", "dataSteward": "", "dataManager": "", "bizSourceSystem": "" }, { "bizObjectId": 123, "level": 3, "type": "BUSINESS_OBJECT", "name": "业务对象1", "enName": "bizObject1", "bizObjectCode": "RD-BO000001", "description": "业务对象测试1", "creator": { "email": "abc@example.com", "fullName": "张三" }, "modifier": { "email": "abc@example.com", "fullName": "张三" }, "createTime": "2024-05-23 15:05:41", "updateTime": "2024-05-23 15:05:41", "status": "DRAFT", "parentId": 12, "parentName": "主题域1", "parentCode": "RD-SD000001", "version": "v1.0", "dataOwner": "数据owner123", "dataOwnerDept": "数据治理组", "dataSteward": "数据管家123", "dataManager": "数据治理管理员123", "bizSourceSystem": "业务来源系统123" } ] }, "reqId": "eb34fc3a9b3f4e7eab4d71f0c11aa29a", "cost": 60 }
2.1.3 获取主题域分组/主题域/业务对象详情
版本:1.0 描述:获取主题域分组/主题域/业务对象详情 URL参数/请求体
名称 | 类型 | 描述 | 必须 | 默认值 |
---|---|---|---|---|
pgId | Number | 项目组ID | 是 | |
bizObjectId | Number | 主题域分组/主题域/业务对象ID | 是 |
请求实例
curl -X GET http://easy-openapi.example.com/openapi/erm/api/openapi/business-object/v1/detail?pgId=1&bizObjectId=11
响应体
BizObjectDetailVO
名称 | 类型 | 描述 |
---|---|---|
bizObjectId | Long | 主题域分组/主题域/业务对象唯一ID |
name | String | 中文名称 |
enName | String | 英文名称 |
type | BizObjectTypeEnum | 类型:SUBJECT :主题域分组/主题域BUSINESS_OBJECT : 业务对象 |
level | Integer | 层级:1:L1主题域分组2:L2主题域3:L3业务对象 |
bizObjectCode | String | 编码 |
description | String | 定义 |
creator | SimpleUserVO | 创建人 |
modifier | SimpleUserVO | 修改人 |
parentId | Long | 上级id |
parentName | String | 上级中文名称 |
parentCode | String | 上级编码 |
version | String | 版本 |
createTime | String | 创建时间 |
updateTime | String | 更新时间 |
status | BizObjectStatusEnum | 业务对象状态:DRAFT : 草稿PUBLISHED : 已上线 |
dataOwner | String | 数据owner (主题域/业务对象) |
dataOwnerDept | String | 数据owner部门 (业务对象) |
dataSteward | String | 数据管家 (业务对象) |
dataManager | String | 数据治理管理员(业务对象) |
bizSourceSystem | String | 业务来源系统名称(业务对象) |
响应体实例
{ "code": 0, "result": { "bizObjectId": 123, "level": 3, "type": "BUSINESS_OBJECT", "name": "业务对象1", "enName": "bizObject1", "bizObjectCode": "RD-BO000001", "description": "业务对象测试1", "creator": { "email": "abc@example.com", "fullName": "张三" }, "modifier": { "email": "abc@example.com", "fullName": "张三" }, "createTime": "2024-05-23 15:05:41", "updateTime": "2024-05-23 15:05:41", "status": "DRAFT", "parentId": 12, "parentName": "主题域23", "parentCode": "RD-SD000001", "version": "v1.0", "dataOwner": "数据owner123", "dataOwnerDept": "数据治理组", "dataSteward": "数据管家123", "dataManager": "数据治理管理员123", "bizSourceSystem": "业务来源系统123" }, "reqId": "9e9659ade5654c3585060d89813a7757", "cost": 6 }
2.1.4 分页获取业务对象下的实体列表
GET /erm/api/openapi/business-object/v1/entity/list 版本:1.0 描述:分页获取业务对象下的实体列表 URL参数/请求体
名称 | 类型 | 描述 | 必须 | 默认值 |
---|---|---|---|---|
pgId | Number | 项目组ID | 是 | |
entityId | Number | 表/实体ID(不传表示返回所有实体属性列表) | 否 | |
currentPage | Number | 当前页 | 否 | 1 |
pageSize | Interger | 每页大小 | 否 | 25 |
keyword | String | 实体模糊搜索关键字 | 否 |
请求实例
curl -X GET http://easy-openapi.example.com/openapi/erm/api/openapi/business-object/v1/entity/list?bizObjectId=11¤tPage=1&pageSize=25&keyword=test
响应体 PageInfo
名称 | 类型 | 描述 |
---|---|---|
currentPage | Number | 当前页数,从1开始 |
pageSize | Number | 每页显示条数 |
count | Number | 总条数 |
contents | Array < DataEntityAttributeVO > | 当前页结果 |
EntityDetailVO
名称 | 类型 | 描述 |
---|---|---|
entityId | Long实体ID | |
entityName | String | 实体中文名称 |
entityEnName | String | 实体英文名称 |
entityCode | String | 实体编码 |
entityVersion | Long | 实体版本号 |
description | String | 描述 |
entityType | DataEntityTypeEnum | 实体类型 |
tableNum | Integer | 关联表数量/物化表数量 |
createTime | String | 创建时间 |
updateTime | String | 更新时间 |
sourceType | SourceTypeEnum | 数据来源 |
sourceUrl | String | 数据来源链接 |
sourceId | String | 数据来源 |
ID | customValuesList < KeyValuePairVO > | 自定义属性 |
bizObjects | List < BizObjectBriefVO > | 当前实体绑定的业务对象列表 |
响应体实例
{ "code": 0, "result": { "count": 2, "currentPage": 1, "pageSize": 25, "contents": [ { "entityId": 35, "entityName": "用户", "entityEnName": "user_entity", "entityCode": "1397a138-86b1-4f5e-a1de-c40d1d897206", "entityVersion":1, "description": "aaas", "entityType": "ENTITY", "tableNum": 0, "createTime": "2024-05-23 15:31:20", "updateTime": "2024-05-24 10:45:30", "sourceType": "DDM", "sourceUrl": "http://example:18080", "sourceId": "8", "customValueObjects":[ { "key":"自定义属性1", "value":"值1" }, { "key":"自定义属性2", "value":"值2" } ], "bizObjects": [ { "id": 46, "name": "业务对象test", "path": "主题域分组11/主题域23/业务对象test1" } ] }, { "entityId": 36, "entityName": "支付单实体2", "entityEnName": "paybill_entity2", "entityCode": "b258133a-e0b9-4fe2-8524-f68fa99539a4", "entityType": "ENTITY", "entityVersion":2, "tableNum": 0, "createTime": "2024-05-23 15:31:20", "updateTime": "2024-05-24 10:45:30", "sourceType": "DDM", "sourceUrl": "http://59.111.205.136:18080", "sourceId": "11", "customValueObjects":[ { "key":"自定义属性3", "value":"值3" }, { "key":"自定义属性4", "value":"值4" } ], "bizObjects": [ { "id": 65, "name": "业务对象test2", "path": "主题域分组11/主题域23/业务对象test2" } ] } ] }, "reqId": "ebfd6b5230d64066aacac8b034c387fa", "cost": 22 }json
2.1.5 分页获取实体下的属性(字段)列表
GET /erm/api/openapi/entity/v1/column/list 版本:1.0 描述:分页获取实体下的属性(字段)列表 URL参数/请求体
名称 | 类型 | 描述 | 必须 | 默认值 |
---|---|---|---|---|
pgId | Number | 项目组ID | 是 | |
entityId | Number | 表/实体ID(不传表示返回所有实体属性列表) | 否 | |
currentPage | Number | 当前页 | 否 | 1 |
pageSize | Interger | 每页大小 | 否 | 25 |
keyword | String | 实体模糊搜索关键字 | 否 |
请求实例
curl -X GET http://easy-openapi.example.com/openapi/erm/api/openapi/entity/v1/column/list?pgId=1&entityId=11¤tPage=1&pageSize=25&keyword=test
响应体
PageInfo
名称 | 类型 | 描述 |
---|---|---|
currentPage | Number | 当前页数,从1开始 |
pageSize | Number | 每页显示条数 |
count | Number | 总条数 |
contents | Array < DataEntityAttributeVO > | 当前页结果 |
DataEntityAttributeVO
名称 | 类型 | 描述 |
---|---|---|
id | Long | 字段/属性ID |
name | String | 中文名称 |
enName | String | 英文名称 |
attributeCode | String | 字段编码 |
modelId | Long | 所属模型ID |
tableEntityId | Long | 所属实体ID |
dataType | String | 数据类型 |
description | String | 描述 |
dataElementDataElement | SimpleVO | 数据标准 |
dictDict | SimpleVO | 字典 |
primaryKey | Boolean | 是否主键 |
foreignKey | Boolean | 是否外键 |
notNull | Boolean | 是否非空 |
logicFlag | Boolean | 是否为逻辑字段 |
defaultValue | String | 默认值 |
customValues | List < KeyValuePairVO > | 自定义属性 |
DataElementSimpleVO
名称 | 类型 | 描述 |
---|---|---|
id | Long | 字段/属性ID |
nameCn | String | 中文名称 |
nameEn | String | 英文名称 |
identifier | String | 标识符 |
DictSimpleVO
名称 | 类型 | 描述 |
---|---|---|
id | Long | 字段/属性ID |
nameCn | String | 中文名称 |
nameEn | String | 英文名称 |
identifier | String | 标识符 |
响应体实例
{ "code": 0, "result": { "count": 2, "currentPage": 1, "pageSize": 25, "contents": [ { "id": 124, "name": "id", "enName": "id", "attributeCode": "jflsdjf", "modelId": 1, "tableEntityId": 1, "dataType": "LONG", "description": "primaryKey", "primaryKey": true, "foreignKey": false, "notNull": true, "logicFlag": false, "dataElement": { "id": 64418, "nameCn": "数据元素", "nameEn": "DataElement", "identifier": "DE123456" }, "dict": { "id": 65151, "nameCn": "字典", "nameEn": "Dictionary", "identifier": "DICT789012" }, "customValues": [ { "key": "key1", "value": "value1" }, { "key": "key2", "value": "value2" }, { "key": "key3", "value": "value3" } ] }, { "id": 125, "name": "金额", "enName": "amt", "modelId": 1, "tableEntityId": 1, "dataType": "LONG", "primaryKey": false, "foreignKey": false, "notNull": false, "logicFlag": false, "deleted": false, "defaultValue": "", "dataElement": { "id": 98765, "nameCn": "用户数据", "nameEn": "UserData", "identifier": "UD654321" }, "dict": { "id": 12345, "nameCn": "配置字典", "nameEn": "ConfigDictionary", "identifier": "CD987654" }, "customValues": [ { "key": "key4", "value": "value4" } ] } ] }, "reqId": "2ebbe3e07d34476fbb06e4785e2f6048", "cost": 18 }
2.1.6 批量获取属性(字段)列表
POST /erm/api/openapi/entity/v1/column/batch-get 版本:1.0 描述:分页获取实体下的属性(字段)列表 URL参数/请求体
名称 | 类型 | 描述 | 必须 | 默认值 |
---|---|---|---|---|
pgId | Number | 项目组ID | 是 | |
columnIds | List < Long > | 属性(字段)ID列表 | 是 |
请求实例
curl -X POST 'http://easy-openapi.example.com/openapi/erm/api/openapi/entity/v1/column/batch-get' \
-H 'Content-Type: application/json' \
-d '{"pgId":65,"columnIds":[1,2,3]}'
响应体
PageInfo
名称 | 类型 | 描述 |
---|---|---|
currentPage | Number当前页数,从1开始 | |
pageSize | Number | 每页显示条数 |
count | Number | 总条数 |
contents | Array < DataEntityAttributeVO > | 当前页结果 |
{ "code": 0, "result": [ { "id": 1, "name": "id", "enName": "id", "attributeCode": "jflsdjf", "modelId": 1, "tableEntityId": 1, "dataType": "varchar(10)", "description": "这是一个id", "dataElement": { "id": 3275, "nameCn": "值域有效性", "nameEn": "dfugdhdj", "identifier": "DE-00001838" }, "primaryKey": true, "foreignKey": false, "notNull": true, "logicFlag": true }, { "id": 2, "name": "名称", "enName": "name", "attributeCode": "jlsgjs", "modelId": 1, "tableEntityId": 1, "dataType": "varchar(64)", "description": "这是名称", "dataElement": { "id": 3278, "nameCn": "array测试", "nameEn": "arrayTest", "identifier": "DE-00001840" }, "primaryKey": false, "foreignKey": false, "notNull": false, "logicFlag": true, "defaultValue": "" }, { "id": 3, "name": "id", "enName": "id", "modelId": 10, "tableEntityId": 12, "dataType": "LONG", "description": "adadads", "primaryKey": false, "foreignKey": false, "notNull": false, "logicFlag": false, "defaultValue": "asad" } ], "reqId": "c854eb9cd1cf4e9dbb24408d4aa67737", "cost": 201 }
以上内容对您是否有帮助?