# 对比M-V模型实例 - CompareBusinessVersion
#### 功能介绍
本接口用于根据主对象ID（id），获取指定Master-Branch-Version（M-V）模型下两个不同版本实例的完整数据快照，以便进行属性与关系的差异对比。
**建议：**
本接口为基础对比功能。为获得更优的对比体验和更细粒度的控制（如仅对比属性或仅对比关系），推荐使用数据建模引擎（xDM Foundation，简称xDM-F）新增的差异对比接口，即instance-attrs-comparison（属性对比）和instance-relation-comparison（关系对比）接口。更多内容可在应用运行态的"数据服务管理 \> 全量数据服务 \> 系统管理API \> 属性对比API"中查看。
在调用本接口前，请确保目标数据模型满足以下条件：
1. 已在应用设计态完成M-V模型实体（即"父模型"为"VersionObject"的数据实体）的创建与发布。具体操作请参见[创建数据实体](https://support.huaweicloud.com/usermanual-idme/idme_usermanual_0007.html)、[创建关系实体](https://support.huaweicloud.com/usermanual-idme/idme_usermanual_0022.html)和[应用发布](https://support.huaweicloud.com/usermanual-idme/idme_usermanual_0085.html)。
   
2. 已将对应应用成功部署至运行态。具体操作请参见[部署应用](https://support.huaweicloud.com/consog-idme/idme_consog_0022.html)。
   
 
#### 接口约束
- 本接口仅支持M-V模型数据实例，不支持普通单实体或关系实体。
  
- basicVersion和correlationVersion必须属于同一Master下的版本。
  
 
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/iDMEClassicAPI/doc?api=CompareBusinessVersion)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-idme/idme_api_0017.html)。
#### URI
POST /rdm_{identifier}_app/publicservices/api/{modelName}/compareBusinessVersion
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|:---|
| identifier | 是    | String | **参数解释：** 应用的唯一标识。 - 于2023年06月01日之前创建的应用，其唯一标识为该应用的名称。   - 于2023年06月01日之后创建的应用，其唯一标识为该应用的ID。    获取方法请参见[获取运行服务清单 - ListEnvs](https://support.huaweicloud.com/api-idme/ListApps.html)。 **约束限制：** 不涉及。 **取值范围：** - 于2023年06月01日之前创建的应用：由英文字母和数字组成，长度为1-36个字符。   - 于2023年06月01日之后创建的应用：由英文字母和数字组成，且长度为32个字符。    **默认取值：** 不涉及。 |
| modelName  | 是    | String | **参数解释：** M-V模型的英文名称。 **约束限制：** 必须为已发布的M-V模型，单实体、关系实体不支持。 **取值范围：** 以大写字母开头，只能包含字母、数字、"_"，且长度为1-60个字符。 **默认取值：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | **参数解释：** IAM用户的token。 获取方法请参见[获取IAM用户Token](https://support.huaweicloud.com/api-iam/iam_30_0001.html)。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。 |
   
表3请求Body参数 
| 参数            | 是否必选 | 参数类型                                                                                                       | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
|:---|:---|:---|:---|
| applicationId | 否    | String                                                                                                     | **参数解释：** 应用ID，用于指定实例所属的应用。 当URL路径中已能明确应用上下文时，此参数可不传。 获取方法请参见[获取租户下的应用清单 - ListApps](https://support.huaweicloud.com/api-idme/ListApps.html)。 **约束限制：** 不涉及。 **取值范围：** 由英文字母和数字组成，且长度固定为32个字符。 **默认取值：** 不涉及。 |
| params        | 是    | [VersionModelCompareVersionVO] object | **参数解释：** 请求参数对象，包含待对比的两个版本号及主对象ID。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                                                                                                                              |
   
 表4VersionModelCompareVersionVO 
| 参数                 | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
|:---|:---|:---|:---|
| id                 | 是    | String | **参数解释：** 主对象ID，用于定位待对比版本所属的主对象。 **约束限制：** 不涉及。 **取值范围：** -9223372036854775808到9223372036854775807的整数。 **默认取值：** 不涉及。 |
| basicVersion       | 是    | String | **参数解释：** 基础版本号，作为对比的基准版本。格式为"大版本.迭代版本"，如"A.1"。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                          |
| correlationVersion | 是    | String | **参数解释：** 对比版本号，与基础版本进行对比的目标版本。格式为"大版本.迭代版本"，如"B.2"。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                     |
   
#### 响应参数
**状态码：200**
表5响应Body参数 
| 参数     | 参数类型             | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|
| result | String           | **参数解释：** 请求处理结果状态。 **取值范围：** - SUCCESS：请求成功。   - FAIL：请求失败。    |
| data   | Array of objects | **参数解释：** 请求数据。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| errors | Array of strings | **参数解释：** 异常信息列表。当result为FAIL时，返回具体的错误描述，包含失败原因及建议处理方式。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                              |
   
#### 请求示例
**示例：对比M-V模型实例两个版本的差异**
对比主对象ID为602443425911939073的基础版本A.1与对比版本B.2之间的属性与关系差异。
```
POST https://dme.cn-north-4.huaweicloud.com/rdm_04219627d6794f37ae26e8aba250415d_app/publicservices/api/VersionModel/compareBusinessVersion
{
  "applicationId" : "04219627d6794f37ae26e8aba250415d",
  "params" : {
    "basicVersion" : "A.1",
    "correlationVersion" : "B.2",
    "id" : "602443425911939073"
  }
}
```
#### 响应示例
**状态码：200**
```
{
  "result": "SUCCESS",
  "data": [
    {
      "id": "602443425911939072",
      "creator": "test1",
      "modifier": "test1",
      "createTime": 2024-02-19T06:38:10.406+0000,
      "lastUpdateTime": 2024-02-19T06:56:43.319+0000,
      "rdmVersion": 1,
      "rdmDeleteFlag": 0,
      "rdmExtensionType": "VersionModel",
      "tenant": {
        "id": "-1",
        "creator": "xdmAdmin",
        "modifier": "xdmAdmin",
        "createTime": 2023-12-01T01:25:21.000+0000,
        "lastUpdateTime": 2023-12-01T01:25:21.000+0000,
        "rdmVersion": 1,
        "rdmDeleteFlag": 0,
        "rdmExtensionType": "Tenant",
        "tenant": null,
        "className": "Tenant",
        "name": "basicTenant",
        "description": "默认租户",
        "kiaguid": null,
        "securityLevel": "internal",
        "nameEn": null,
        "code": "basicTenant",
        "disableFlag": false,
        "dataSource": "DefaultDataSource"
      },
      "className": "VersionModel",
      "name": "这是A版本",
      "description": "这是A版本",
      "kiaguid": "18409de0386546f8af4bb6c1dc5cf50f",
      "securityLevel": "internal",
      "master": {
        "id": "602443425911939073",
        "creator": "test1",
        "modifier": "test1",
        "createTime": 2024-02-19T06:38:10.419+0000,
        "lastUpdateTime": 2024-02-19T06:56:43.319+0000,
        "rdmVersion": 4,
        "rdmDeleteFlag": 0,
        "rdmExtensionType": "VersionModelMaster",
        "tenant": {
          "id": "-1",
          "creator": "xdmAdmin",
          "modifier": "xdmAdmin",
          "createTime": 2023-12-01T01:25:21.000+0000,
          "lastUpdateTime": 2023-12-01T01:25:21.000+0000,
          "rdmVersion": 1,
          "rdmDeleteFlag": 0,
          "rdmExtensionType": "Tenant",
          "tenant": null,
          "className": "Tenant",
          "name": "basicTenant",
          "description": "默认租户",
          "kiaguid": null,
          "securityLevel": "internal",
          "nameEn": null,
          "code": "basicTenant",
          "disableFlag": false,
          "dataSource": "DefaultDataSource"
        },
        "className": "VersionModelMaster"
      },
      "branch": {
        "id": "602443425911939074",
        "creator": "test1",
        "modifier": "test1",
        "createTime": 2024-02-19T06:38:10.464+0000,
        "lastUpdateTime": 2024-02-19T06:56:43.319+0000,
        "rdmVersion": 4,
        "rdmDeleteFlag": 0,
        "rdmExtensionType": "VersionModelBranch",
        "tenant": {
          "id": "-1",
          "creator": "xdmAdmin",
          "modifier": "xdmAdmin",
          "createTime": 2023-12-01T01:25:21.000+0000,
          "lastUpdateTime": 2023-12-01T01:25:21.000+0000,
          "rdmVersion": 1,
          "rdmDeleteFlag": 0,
          "rdmExtensionType": "Tenant",
          "tenant": null,
          "className": "Tenant",
          "name": "basicTenant",
          "description": "默认租户",
          "kiaguid": null,
          "securityLevel": "internal",
          "nameEn": null,
          "code": "basicTenant",
          "disableFlag": false,
          "dataSource": "DefaultDataSource"
        },
        "className": "VersionModelBranch",
        "version": "A"
      },
      "latest": false,
      "latestIteration": true,
      "versionCode": 1,
      "iteration": 1,
      "version": "A",
      "latestVersion": true,
      "workingCopy": false,
      "workingState": {
        "code": "CHECKED_IN",
        "cnName": "已检入",
        "enName": "checked in",
        "alias": "CHECKED_IN"
      },
      "checkOutUserName": null,
      "checkOutTime": null,
      "preVersionId": null,
      "relations": []
    },
    {
      "rdmVersion": 2,
      "description": "这是B版本",
      "version": "B",
      "branch": {
        "id": "602443476277137408",
        "clazz": "VersionModelBranch"
      },
      "preVersionId": "602443476272943104",
      "versionCode": 2,
      "hibernateVersion": 3,
      "latestVersion": true,
      "createTime": 2024-02-23T06:38:10.406+0000,
      "name": "这是B版本",
      "iteration": 2,
      "id": "602443507797336064",
      "relations": [],
      "latest": true,
      "lastUpdateTime": 2024-02-23T06:38:10.406+0000
    }
  ],
  "errors": []
}
```
#### 状态码
| 状态码 | 描述         |
|:---|:---|
| 200 | OK，表示请求成功。 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-idme/APIE-XDM-Runtime-ErrorCode.html)。
