外部自定义验证 REST API 规范

使用此 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