关系建模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
}