使用此 API 规范提供 REST API 端点,使 Oracle Fusion Cloud Enterprise Data Management 能够利用外部系统中的逻辑和数据来验证请求项。
当使用外部自定义验证来验证请求项时,云 EDM 会调用此 API。外部系统验证请求数据,并针对未通过验证的任何请求项或操作返回验证消息。然后,云 EDM 将使用该响应来显示验证问题与自定义验证中指定的严重程度。
REST 资源
要运行外部自定义验证:
HTTP 方法:POST
路径:配置的外部验证路径(在外部验证全局连接中定义)
路径示例:/api/rest/externalValidation
Note:
运行外部自定义验证需要请求正文和响应。
要测试外部验证全局连接:(请参阅“创建全局连接”)
HTTP 方法:GET
路径:配置的外部验证路径(在外部验证全局连接中定义)
路径示例:/api/rest/externalValidation
Note:
测试全局连接不需要请求正文和响应。
身份验证
发往外部系统的 HTTP 请求应通过 Authorization 标头提供 HTTP 基本身份验证凭据。
API 请求
支持的介质类型:application/json
下表对客户端请求进行了总结。
Table 20-6 参数
| 名称 | 描述 | 必需 | 默认 |
|---|---|---|---|
requestId |
EDM 请求标识符 | 是 | 无 |
applicationId |
EDM 应用程序标识符 | 是 | 无 |
validationId |
EDM 自定义验证标识符。 | 是 | 无 |
validationKey |
外部验证程序名称 | 是 | 无 |
data(请参阅Table 20-7) |
按维分组的验证数据集合 | 是 | 无 |
Table 20-7 data 的参数
| 名称 | 描述 | 必需 | 默认 |
|---|---|---|---|
dimensionId |
EDM 维标识符 | 是 | 无 |
dimensionName |
来自应用程序维的外部维名称。 | 是 | 无 |
nodeTypeId |
EDM 节点类型标识符。 | 是 | 无 |
dataSetKey |
外部数据集名称 | 是 | 无 |
nodes(请参阅Table 20-8) |
要验证的节点集合 | 是 | 无 |
Table 20-8 nodes 的参数
| 名称 | 描述 | 必需 | 默认 |
|---|---|---|---|
nodeName |
EDM 节点名称 | 是 | 无 |
actions(请参阅Table 20-9) |
与节点关联的操作集合。 | 是 | 无 |
Table 20-9 actions 的参数
| 名称 | 描述 | 必需 | 默认 |
|---|---|---|---|
actionId |
EDM 操作标识符 | 是 | 无 |
actionType |
要验证的操作类型。有效值包括 add、delete、insert、remove、move、reorder、rename 和 update。 |
是 | 无 |
parentName |
父节点名称。 | 操作在层次视图中时必需。 | 无 |
oldParentName |
move 操作的以前父节点名称。 |
move 操作需要。 |
无 |
previousSibling |
reorder 操作的以前同级节点名称。如果节点要移至第一个位置,则使用 null。 |
reorder 操作需要。 |
无 |
newName |
rename 操作的新节点名称。 |
rename 操作需要。 |
无 |
propertyName |
update 操作的属性名称。 |
update 操作需要。 |
无 |
propertyFromValue |
update 操作的当前属性值。 |
update 操作需要。 |
无 |
propertyToValue |
update 操作的已更新属性值。 |
update 操作需要。 |
无 |
请求示例
{
"requestId": "edm_request_id",
"applicationId": "edm_application_id",
"validationId": "edm_custom_validation_id",
"validationKey": "external_program_name",
"data": [
{
"dimensionId": "edm_dimension_id",
"dimensionName": "dimension_name",
"nodeTypeId": "edm_node_type_id",
"dataSetKey": "external_data_set_name",
"nodes": [
{
"nodeName": "edm_node_name",
"actions": [
{
"actionId": "edm_action_id",
"actionType": "add",
"parentName": "edm_parent_node_name"
},
{
"actionId": "edm_action_id",
"actionType": "delete",
"parentName": "edm_parent_node_name"
},
{
"actionId": "edm_action_id",
"actionType": "insert",
"parentName": "edm_parent_node_name"
},
{
"actionId": "edm_action_id",
"actionType": "remove",
"parentName": "edm_parent_node_name"
},
{
"actionId": "edm_action_id",
"actionType": "move",
"parentName": "edm_parent_name",
"oldParentName": "edm_old_parent_name"
},
{
"actionId": "edm_action_id",
"actionType": "reorder",
"parentName": "edm_parent_node_name",
"previousSibling": "edm_previous_sibling"
},
{
"actionId": "edm_action_id",
"actionType": "rename",
"parentName": "edm_parent_node_name",
"newName": "edm_new_name"
},
{
"actionId": "edm_action_id",
"actionType": "update",
"propertyName": "edm_property_name",
"propertyFromValue": "edm_property_from_value",
"propertyToValue": "edm_property_to_value",
"parentName": "edm_parent_node_name"
}
]
}
]
}
]
}API 响应
支持的介质类型:application/json
Table 20-10 参数
| 名称 | 描述 | 必需 | 默认 |
|---|---|---|---|
requestId |
EDM 请求标识符 | 是 | 无 |
applicationId |
EDM 应用程序标识符 | 是 | 无 |
validationId |
EDM 自定义验证标识符。 | 是 | 无 |
validationKey |
外部验证程序名称 | 是 | 无 |
data(请参阅Table 20-11) |
按维分组的验证结果集合 | 是 | 无 |
Table 20-11 data 的参数
| 名称 | 描述 | 必需 | 默认 |
|---|---|---|---|
dimensionId |
EDM 维标识符 | 是 | 无 |
nodeTypeId |
EDM 节点类型标识符。 | 是 | 无 |
dataSetKey |
外部数据集名称 | 是 | 无 |
nodes(请参阅Table 20-12) |
具有验证结果的节点集合 | 是 | 无 |
Table 20-12 nodes 的参数
| 名称 | 描述 | 必需 | 默认 |
|---|---|---|---|
nodeName |
EDM 节点名称 | 是 | 无 |
message |
外部系统返回的节点级别验证消息。 | 否 | 无 |
severity |
节点级别验证消息的严重程度。 | 否 | 无 |
validationMessages(请参阅Table 20-13) |
操作级别验证消息的集合。 | 是 | 无 |
Table 20-13 validationMessages 的参数
| 名称 | 描述 | 必需 | 默认 |
|---|---|---|---|
actionID |
EDM 操作标识符 | 是 | 无 |
actionType |
未通过验证的操作类型。 | 是 | 无 |
message |
外部系统返回的验证消息。 | 是 | 无 |
severity |
操作级别验证消息的严重程度。 | 否 | Error |
响应示例
{
"requestId": "edm_request_id",
"applicationId": "edm_application_id",
"validationId": "edm_custom_validation_id",
"validationKey": "external_program_name",
"data": [
{
"dimensionId": "edm_dimension_id",
"nodeTypeId": "edm_node_type_id",
"dataSetKey": "external_data_set_name",
"nodes": [
{
"nodeName": "edm_node_name",
"message": "external_validation_message",
"severity": "warning",
"validationMessages": [
{
"actionId": "edm_action_id",
"actionType": "delete",
"message": "external_validation_message",
"severity": "error"
}
]
}
]
}
]
}示例
以下示例显示了如何使用 cURL 提交对 REST 资源的 POST 请求来运行外部验证。
cURL 命令
curl --user external_user -X POST -H "Content-Type: application/json" -d @example_request_payload.json https://externalhostname.example.com/api/rest/externalValidation