全量数据服务查询类接口调用示例
背景信息
某汽车整机厂商A通过工业数字模型驱动引擎-数据建模引擎(xDM Foundation,简称xDM-F)构建了一个汽车追溯系统(VehicleTraceabilitySystem),用于对汽车生产过程中的各个环节进行实时追踪和追溯,确保产品质量和供应链的透明度。其中,开发人员在构建汽车追溯系统时,存在如下数据模型结构。
前提条件
已在应用设计态创建了如下数据模型,并将这些数据模型部署至应用运行态。
数据模型 |
基本信息 |
基本属性 |
---|---|---|
数据实体 |
|
|
|
|
|
|
|
|
关系实体 |
|
- |
|
- |
示例1:查询发货记录关联的所有组装记录
- 调用认证鉴权接口,获取用户的Token。
- 请求消息
POST https://{Endpoint}/v3/auth/tokens
请求消息头:
Content-Type: application/json
请求Body:
{ "auth": { "identity": { "methods": ["password"], "password": { "user": { "name": "user_name", "password": "user_password", "domain": { "name": "domain_name" } } } }, "scope": { "project": { "name": "project_name" } } } }
其中,加粗的斜体字段需要根据实际值填写。
- Endpoint:表示承载REST服务端点的服务器域名或IP地址。
- user_name:表示用户名。
- user_password:表示用户登录密码。
- domain_name:表示用户所属的账号名。
- project_name:表示项目名,代表iDME应用的部署区域。
- 响应消息
返回状态码“200 OK”,在响应Header中获取“X-Subject-Token”的值即为Token。如下所示:
X-Subject-Token: MIIZmgYJKoZIhvcNAQcCoIIZizCCGYcCAQExDTALBglghkgBZQMEAgEwgXXXXXX...
- 请求消息
- 调用关系实体“AssembleShipmentLink”的queryRelatedObjects接口,查询发货记录关联的所有组装记录。
- 请求消息
POST http://{Endpoint}/rdm_{appID}_app/services/api/AssembleShipmentLink/queryRelatedObjects/100/1
请求消息头:
Content-Type: application/json
请求Body:
{ "params": { "role": "source", "isNeedTotal": true, "objectId": 701125002182795264 } }
其中,加粗的斜体字段需要根据实际值填写。
- Endpoint:表示承载REST服务端点的服务器域名或IP地址。
- appID:表示应用ID。
- role:表示角色,取值范围:TARGET(目标模型),SOURCE(源模型)。此处设置为“SOURCE”。
- isNeedTotal:表示是否需要查询总记录数。此处设置为“true”。
- objectId:表示role参数值对应的数据实例ID。
- 响应消息
{ "result": "SUCCESS", "data": [ { "id": "701124583796776960", "lastUpdateTime": "2024-11-21T09:38:47.042+0000", "rdmExtensionType": "ShipmentRecord", "className": "ShipmentRecord", "clazz": "ShipmentRecord", "vin": "001" }, { "id": "701124634447192064", "lastUpdateTime": "2024-11-21T09:38:59.118+0000", "rdmExtensionType": "ShipmentRecord", "className": "ShipmentRecord", "clazz": "ShipmentRecord", "vin": "002" } ], "errors": [], "pageInfo": { "curPage": 1, "pageSize": 100, "totalRows": 2, "totalPages": 1 } }
- 请求消息
示例2:根据供货记录(源端)的配件名称,查询供货记录与发货记录关系
- 调用认证鉴权接口,获取用户的Token。
- 请求消息
POST https://{Endpoint}/v3/auth/tokens
请求消息头:
Content-Type: application/json
请求Body:
{ "auth": { "identity": { "methods": ["password"], "password": { "user": { "name": "user_name", "password": "user_password", "domain": { "name": "domain_name" } } } }, "scope": { "project": { "name": "project_name" } } } }
其中,加粗的斜体字段需要根据实际值填写。
- Endpoint:表示承载REST服务端点的服务器域名或IP地址。
- user_name:表示用户名。
- user_password:表示用户登录密码。
- domain_name:表示用户所属的账号名。
- project_name:表示项目名,代表iDME应用的部署区域。
- 响应消息
返回状态码“200 OK”,在响应Header中获取“X-Subject-Token”的值即为Token。如下所示:
X-Subject-Token: MIIZmgYJKoZIhvcNAQcCoIIZizCCGYcCAQExDTALBglghkgBZQMEAgEwgXXXXXX...
- 请求消息
- 调用关系实体“SupplyAssembleLink”的find接口,根据供货记录(源端)的配件名称,查询供货记录与发货记录关系。
- 请求消息
POST http://{Endpoint}/rdm_{appID}_app/services/api/SupplyAssembleLink/find/100/1
请求消息头:
Content-Type: application/json
请求Body:
{ "params": { "filter": { "joiner": "and", "conditions": [ { "conditionName": "source.partNumber", "operator": "=", "conditionValues": [ "001" ] } ] }, "isNeedTotal": false } }
其中,加粗的斜体字段需要根据实际值填写。
- Endpoint:表示承载REST服务端点的服务器域名或IP地址。
- appID:表示应用ID。
- joiner:表示连接符,取值范围:on,and和where。此处设置为“and”。
- conditionName:表示查询条件的名称(数据模型的属性英文名称)。
- operator:表示操作符,取值范围:=、like、customLike、in、<、>、>=、<=和<>。此处设置为“=”。
- conditionValues:表示查询条件的值。当“operator”参数为“in”时有多值,“operator”为其他操作符时均为单值。
- isNeedTotal:表示是否需要查询总记录数。此处设置为“false”。
- 响应消息
{ "result": "SUCCESS", "data": [ { "id": "701125239454572544", "createTime": "2024-11-21T09:41:23.363+0000", "lastUpdateTime": "2024-11-21T09:41:23.363+0000", "rdmVersion": 1, "rdmDeleteFlag": 0, "rdmExtensionType": "SupplyAssembleLink", "className": "SupplyAssembleLink", "clazz": "SupplyAssembleLink", "source": { "id": "701124742303719424", "createTime": "2024-11-21T09:39:24.833+0000", "lastUpdateTime": "2024-11-21T09:39:24.833+0000", "rdmVersion": 1, "rdmDeleteFlag": 0, "rdmExtensionType": "SupplyRecord", "className": "SupplyRecord", "clazz": "SupplyRecord", "partName": "磁盘", "purchaseQuantity": 100, "partNumber": "001", "manufactureInformation": "南流" }, "target": { "id": "701125002182795264", "createTime": "2024-11-21T09:40:26.793+0000", "lastUpdateTime": "2024-11-21T09:40:26.793+0000", "rdmVersion": 1, "rdmDeleteFlag": 0, "rdmExtensionType": "AssembleRecord", "className": "AssembleRecord", "clazz": "AssembleRecord", "bodyNumber": "001", "brakePadNumber": "001", "chassisNumber": "001", "engineNumber": "001" }, "name": null, "description": null } ], "errors": [], "pageInfo": { "curPage": 1, "pageSize": 100, "totalRows": 0, "totalPages": 0 } }
- 请求消息
示例3:根据供货记录(源端)的配件名称与厂家信息,查询供货记录与发货记录关系
- 调用认证鉴权接口,获取用户的Token。
- 请求消息
POST https://{Endpoint}/v3/auth/tokens
请求消息头:
Content-Type: application/json
请求Body:
{ "auth": { "identity": { "methods": ["password"], "password": { "user": { "name": "user_name", "password": "user_password", "domain": { "name": "domain_name" } } } }, "scope": { "project": { "name": "project_name" } } } }
其中,加粗的斜体字段需要根据实际值填写。
- Endpoint:表示承载REST服务端点的服务器域名或IP地址。
- user_name:表示用户名。
- user_password:表示用户登录密码。
- domain_name:表示用户所属的账号名。
- project_name:表示项目名,代表iDME应用的部署区域。
- 响应消息
返回状态码“200 OK”,在响应Header中获取“X-Subject-Token”的值即为Token。如下所示:
X-Subject-Token: MIIZmgYJKoZIhvcNAQcCoIIZizCCGYcCAQExDTALBglghkgBZQMEAgEwgXXXXXX...
- 请求消息
- 调用关系实体“SupplyAssembleLink”的find接口,根据供货记录(源端)的配件名称与厂家信息,查询供货记录与发货记录关系。
- 请求消息
POST http://{Endpoint}/rdm_{appID}_app/services/api/SupplyAssembleLink/find/100/1
请求消息头:
Content-Type: application/json
请求Body:
{ "params": { "filter": { "joiner": "and", "conditions": [ { "conditionName": "source.partNumber", "operator": "=", "conditionValues": [ "001" ] }, { "conditionName": "source.manufactureInformation", "operator": "=", "conditionValues": [ "南流" ] } ] }, "isNeedTotal": false } }
其中,加粗的斜体字段需要根据实际值填写。
- Endpoint:表示承载REST服务端点的服务器域名或IP地址。
- appID:表示应用ID。
- joiner:表示连接符,取值范围:on,and和where。此处设置为“and”。
- conditionName:表示查询条件的名称(数据模型的属性英文名称)。
- operator:表示操作符,取值范围:=、like、customLike、in、<、>、>=、<=和<>。此处设置为“=”。
- conditionValues:表示查询条件的值。当“operator”参数为“in”时有多值,“operator”为其他操作符时均为单值。
- isNeedTotal:表示是否需要查询总记录数。此处设置为“false”。
- 响应消息
{ "result": "SUCCESS", "data": [ { "id": "701125239454572544", "createTime": "2024-11-21T09:41:23.363+0000", "lastUpdateTime": "2024-11-21T09:41:23.363+0000", "rdmVersion": 1, "rdmDeleteFlag": 0, "rdmExtensionType": "SupplyAssembleLink", "className": "SupplyAssembleLink", "clazz": "SupplyAssembleLink", "source": { "id": "701124742303719424", "createTime": "2024-11-21T09:39:24.833+0000", "lastUpdateTime": "2024-11-21T09:39:24.833+0000", "rdmVersion": 1, "rdmDeleteFlag": 0, "rdmExtensionType": "SupplyRecord", "className": "SupplyRecord", "clazz": "SupplyRecord", "partName": "磁盘", "purchaseQuantity": 100, "partNumber": "001", "manufactureInformation": "南流" }, "target": { "id": "701125002182795264", "createTime": "2024-11-21T09:40:26.793+0000", "lastUpdateTime": "2024-11-21T09:40:26.793+0000", "rdmVersion": 1, "rdmDeleteFlag": 0, "rdmExtensionType": "AssembleRecord", "className": "AssembleRecord", "clazz": "AssembleRecord", "bodyNumber": "001", "brakePadNumber": "001", "chassisNumber": "001", "engineNumber": "001" }, "name": null, "description": null } ], "errors": [], "pageInfo": { "curPage": 1, "pageSize": 100, "totalRows": 0, "totalPages": 0 } }
- 请求消息
示例4:根据组装记录(ShipmentRecord)的车辆识别号,查询发货与组装记录的关系
- 调用认证鉴权接口,获取用户的Token。
- 请求消息
POST https://{Endpoint}/v3/auth/tokens
请求消息头:
Content-Type: application/json
请求Body:
{ "auth": { "identity": { "methods": ["password"], "password": { "user": { "name": "user_name", "password": "user_password", "domain": { "name": "domain_name" } } } }, "scope": { "project": { "name": "project_name" } } } }
其中,加粗的斜体字段需要根据实际值填写。
- Endpoint:表示承载REST服务端点的服务器域名或IP地址。
- user_name:表示用户名。
- user_password:表示用户登录密码。
- domain_name:表示用户所属的账号名。
- project_name:表示项目名,代表iDME应用的部署区域。
- 响应消息
返回状态码“200 OK”,在响应Header中获取“X-Subject-Token”的值即为Token。如下所示:
X-Subject-Token: MIIZmgYJKoZIhvcNAQcCoIIZizCCGYcCAQExDTALBglghkgBZQMEAgEwgXXXXXX...
- 请求消息
- 调用关系实体“AssembleShipmentLink”的find接口,根据组装记录(ShipmentRecord)的车辆识别号,查询发货与组装记录的关系。
- 请求消息
POST http://{Endpoint}/rdm_{appID}_app/services/api/AssembleShipmentLink/find/100/1
请求消息头:
Content-Type: application/json
请求Body:
{ "params": { "filter": { "joiner": "and", "conditions": [ { "conditionName": "target.vin", "operator": "=", "conditionValues": [ "001" ] }, { "conditionName": "target.salesSite", "operator": "=", "conditionValues": [ "广州" ] } ] }, "isNeedTotal": false } }
其中,加粗的斜体字段需要根据实际值填写。
- Endpoint:表示承载REST服务端点的服务器域名或IP地址。
- appID:表示应用ID。
- joiner:表示连接符,取值范围:on,and和where。此处设置为“and”。
- conditionName:表示查询条件的名称(数据模型的属性英文名称)。
- operator:表示操作符,取值范围:=、like、customLike、in、<、>、>=、<=和<>。此处设置为“=”。
- conditionValues:表示查询条件的值。当“operator”参数为“in”时有多值,“operator”为其他操作符时均为单值。
- isNeedTotal:表示是否需要查询总记录数。此处设置为“false”。
- 响应消息
{ "result": "SUCCESS", "data": [ { "id": "701125119333900288", "createTime": "2024-11-21T09:40:54.724+0000", "lastUpdateTime": "2024-11-21T09:40:54.724+0000", "rdmVersion": 1, "rdmDeleteFlag": 0, "rdmExtensionType": "AssembleShipmentLink", "className": "AssembleShipmentLink", "clazz": "AssembleShipmentLink", "source": { "id": "701125002182795264", "createTime": "2024-11-21T09:40:26.793+0000", "lastUpdateTime": "2024-11-21T09:40:26.793+0000", "rdmVersion": 1, "rdmDeleteFlag": 0, "rdmExtensionType": "AssembleRecord", "className": "AssembleRecord", "clazz": "AssembleRecord", "bodyNumber": "001", "brakePadNumber": "001", "chassisNumber": "001", "engineNumber": "001" }, "target": { "id": "701124583796776960", "createTime": "2024-11-21T09:38:47.042+0000", "lastUpdateTime": "2024-11-21T09:38:47.042+0000", "rdmVersion": 1, "rdmDeleteFlag": 0, "rdmExtensionType": "ShipmentRecord", "className": "ShipmentRecord", "clazz": "ShipmentRecord", "vin": "001", "salesPrice": "100.00", "saleDate": "2024-11-21T09:38:22.000+0000", "salesChannels": "线上", "salesSite": "广州" }, "name": null, "description": null } ], "errors": [], "pageInfo": { "curPage": 1, "pageSize": 100, "totalRows": 0, "totalPages": 0 } }
- 请求消息