
# 获取与安装
#### 下载数据管理API代理器
请参阅[应用发布](https://support.huaweicloud.com/usermanual-idme/idme_usermanual_0085.html)的"数据建模引擎用户指南 \> 设计态使用指南 \> 应用中心 \> 应用发布"章节，下载对应版本的数据管理API代理器。
为了避免不必要的繁琐代码排查与程序定位问题，如果您初次使用iDME或者数据量不大，推荐使用更加友好、图形化界面的[数据建模引擎](https://support.huaweicloud.com/usermanual-idme/idme_usermanual_0001.html)。
#### JAR包结构
数据管理API代理器提供的JAR包目录结构如下：
```
|--- core-sdk-api-1.0.0-SNAPSHOT：包含接口的入参、出参、工具类等。
|--- file-download-sdk-1.0.0-SNAPSHOT：包含文件分块下载的工具类。
|--- rdm-common-1.0.0-SNAPSHOT：包含数据建模引擎（xDM Foundation，简称xDM-F）的公共类。
|--- rdm-delegate-1.0.0-SNAPSHOT：包含代理请求应用运行态的封装类。
|--- releaseNote.md：包含xDM-F的版本发布说明。
|--- 应用英文名称（小写）-api-1.0.0-optimization-SNAPSHOT：包含用户模型生成的代码（客户端），例如entity、DTO、service、delegator等相关代码。
     |--- com.huawei.innovation.rdm.应用英文名称（小写）：用户模型生成代码。
          |--- bean：生成的模型对象。
               |--- entity：数据实体。
               |--- enumerate：枚举。
               |--- interfaces：功能模型。
               |--- relation：关系实体。
          |--- delegator：模型的代理请求，使用调用代码函数的方式代替调API。
          |--- dto：数据传输实体。
               |--- entity：数据实体。
               |--- relation：关系实体。
          |--- service：模型服务层定义，仅做参考使用。          
     |--- com.huawei.innovation.rdm.xdm：系统模型生成代码。
          |--- bean
          |--- delegator
          |--- dto
          |--- service
|--- 应用英文名称（小写）-ext-api-1.0.0-optimization-SNAPSHOT：包含用户模型生成的对应历史版本功能所需模型。
|--- 应用英文名称（小写）-impl-1.0.0-optimization-SNAPSHOT：包含用户模型实现的功能代码（服务端）。如果您已在华为云上部署应用，生成应用运行态，安装数据管理API代理器时需忽略此JAR包。
|--- 应用英文名称（小写）-controller-api-1.0.0-{应用环境标识}-SNAPSHOT：包含用户模型生成的controller API代码（客户端）。
     |--- com.huawei.innovation.rdm.应用名称：用户模型生成Controller。
     |--- com.huawei.innovation.rdm.xdm：系统模型生成Controller。
|--- 应用英文名称（小写）-controller-impl-1.0.0-{应用环境标识}-SNAPSHOT：包含用户模型生成的controller实现类代码（客户端）。如果您已在华为云上部署应用，生成应用运行态，安装数据管理API代理器时需忽略此JAR包。
```
 #### 安装数据管理API代理器
![](https://support.huaweicloud.com/devg-idme/public_sys-resources/notice_3.0-zh-cn.png)
开发过程中，您有任何问题可以在[华为云工业数字模型驱动引擎论坛](https://bbs.huaweicloud.com/forum/forum-01100103966246644019-1.html)中发帖求助。
1. 解压缩下载的JAR包。
2. 将解压缩后的JAR包引入到已有的Maven工程中。 
   以IntelliJ IDEA开发工具为例。
   1. 在"resources"目录下创建一个"lib"目录，并将JAR包存放至该目录下。
   
   2. 单击"File \> Project Structure"。
   
   3. 在弹出的窗口中，选择"Modules \> Dependencies"，单击"+ \> JARs or Directories..."。
   
   4. 选中引入的JAR包，单击"OK"。
   
   5. 单击"Apply"。
   
   
   
   
3. 在pom.xml文件的"\<dependencies\>"节点中添加如下依赖。 
   如下配置以"publishtest"应用为例，请将"publishtest"替换为您实际应用英文名称的小写。
   以本地环境为JDK 17为例，添加如下依赖：
   ```
   <!--iDME file-download-sdk jar包依赖-->
   <dependency>
       <groupId>com.huawei.isc.xdm-f</groupId>
       <artifactId>file-download-sdk</artifactId>
       <version>1.0.0-SNAPSHOT</version>
       <scope>system</scope>
       <systemPath>${project.basedir}/src/main/resources/lib/file-download-sdk-1.0.0-SNAPSHOT.jar</systemPath>
   </dependency>
   <!--iDME core-sdk-api jar包依赖-->
   <dependency>
       <groupId>com.huawei.isc.xdm-f</groupId>
       <artifactId>core-sdk-api</artifactId>
       <version>1.0.0-SNAPSHOT</version>
       <scope>system</scope>
       <systemPath>${project.basedir}/src/main/resources/lib/core-sdk-api-1.0.0-SNAPSHOT.jar</systemPath>
   </dependency>
   <!--iDME rdm-common jar包依赖-->
   <dependency>
       <groupId>com.huawei.isc.xdm-f</groupId>
       <artifactId>rdm-common</artifactId>
       <version>1.0.0-SNAPSHOT</version>
       <scope>system</scope>
       <systemPath>${project.basedir}/src/main/resources/lib/rdm-common-1.0.0-SNAPSHOT.jar</systemPath>
   </dependency>
   <!--iDME rdm-delegate jar包依赖-->
   <dependency>
       <groupId>com.huawei.isc.xdm-f</groupId>
       <artifactId>rdm-delegate</artifactId>
       <version>1.0.0-SNAPSHOT</version>
       <scope>system</scope>
       <systemPath>${project.basedir}/src/main/resources/lib/rdm-delegate-1.0.0-SNAPSHOT.jar</systemPath>
   </dependency>
   <dependency>
       <groupId>com.huawei.xdm</groupId>
       <artifactId>${xdm.app.name}-api</artifactId>
       <systemPath>${project.basedir}/src/main/resources/lib/${xdm.app.name}-api-1.0.0-optimization-SNAPSHOT.jar
       </systemPath>
       <scope>system</scope>
       <version>1.0.0-optimization-SNAPSHOT</version>
   </dependency>
   <dependency>
       <groupId>com.huawei.xdm</groupId>
       <artifactId>${xdm.app.name}-ext-api</artifactId>
       <systemPath>
           ${project.basedir}/src/main/resources/lib/${xdm.app.name}-ext-api-1.0.0-optimization-SNAPSHOT.jar
       </systemPath>
       <scope>system</scope>
       <version>1.0.0-optimization-SNAPSHOT</version>
   </dependency>
   <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-web</artifactId>
   </dependency>
   <!-- 用于忽略证书配置使用 -->
   <dependency>
       <groupId>org.apache.httpcomponents.client5</groupId>
       <artifactId>httpclient5</artifactId>
       <version>5.4.2</version>
   </dependency>
   <dependency>
       <groupId>org.apache.httpcomponents.core5</groupId>
       <artifactId>httpcore5</artifactId>
       <version>5.3.3</version>
   </dependency>
   <!-- validation 依赖 -->
   <dependency>
       <groupId>jakarta.validation</groupId>
       <artifactId>jakarta.validation-api</artifactId>
   </dependency>
   <!-- CacheLoader依赖 -->
   <dependency>
       <groupId>com.google.guava</groupId>
       <artifactId>guava</artifactId>
       <version>32.1.1-jre</version>
   </dependency>
   <!-- 反射组件依赖 -->
   <dependency>
       <groupId>org.reflections</groupId>
       <artifactId>reflections</artifactId>
       <version>0.10.2</version>
   </dependency>
   <!-- Entity 注解依赖 -->
   <dependency>
       <groupId>jakarta.persistence</groupId>
       <artifactId>jakarta.persistence-api</artifactId>
       <version>3.1.0</version> <!-- 请使用最新的稳定版本 -->
   </dependency>
   <!-- UrlUtil 依赖 -->
   <dependency>
       <groupId>org.apache.commons</groupId>
       <artifactId>commons-lang3</artifactId>
       <version>3.14.0</version>
   </dependency>
   ```
   
   
4. 在application.yml文件中添加delegate信息。 
   ```
   delegate:
     subAppId: rdm_e22c66fb1d05453fa********e3cc9c0_app
     domain: https://dme.cn-north-4.huaweicloud.com
     userName: DME_validation
     password: ********
     endpoint: https://iam.cn-north-4.myhuaweicloud.com
     domainName: hwstaff_IDT_SRE
     regionName: cn-north-4
     serviceType: services/dynamic
     ssl: true
     trustStore: classpath:uat.jks
     trustStorePassword: ********
   ```
   - subAppId：rdm_应用ID_app。应用ID可前往当前应用设计态的"应用中心 \> 应用发布"获取，详情请参见[应用发布](https://support.huaweicloud.com/usermanual-idme/idme_usermanual_0085.html)。
   
   - domain：iDME服务所在的域名或IP。
   
   - userName：IAM用户名。
   
   - password：IAM用户密码。
   
   - endpoint：IAM用户所在的域名或IP。
   
   - domainName：租户名/原华为账号。
   
   - regionName：当前iDME服务所在的地域。
   
   - serviceType：URI格式的配置，默认为"publicservices"。如果您购买的数据建模引擎为基础版，则需要将"publicservices"修改为"services/dynamic"。
   
   - ssl：是否开启SSL认证。默认为false，不开启SSL认证。如果开启SSL认证，则需要配置trustStore和trustStorePassword参数。
   
   - trustStore：SSL证书的安装路径。
   
   - trustStorePassword：SSL证书的私钥密码。
   
   
   
   
 
