
# 非纯脚本服务定义
#### 操作场景
聚合服务编排提供可视化图形化的API编排能力。基于此能力，开发人员无需再从零开始编写复杂的代码，只需通过简单的拖拉拽和配置，就可轻松完成API的编排，极大地提高了API的开发效率和灵活性。
图1创建非纯脚本服务流程图   
![](https://support.huaweicloud.com/instg-idme/figure/zh-cn_image_0000001883308906.png)
#### 前提条件
已获取开发人员及以上权限用户的账号和密码。
#### 步骤1：定义基本信息
1. 登录LinkX-F系统首页。
2. 选择"数据服务 \> 聚合服务编排"，进入"聚合服务编排"页面。
3. 单击"创建"，弹出"创建聚合服务"界面。 
   默认进入"服务定义"页的"基本信息"阶段。
   
   
4. 根据界面提示，配置如下基本信息，如[表1]所示：
   
    表1服务定义基本信息 
   | 参数             | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
   |:---|:---|
   | API英文名称        | 根据API提供的功能，自定义API的英文名称。 必填，需以大写英文字母开头，只能包含英文字母、数字和_，长度不能超过256个字符。                                                                                                                                                                                                                                                                                                                                                                                                                                     |
   | API中文名称        | 根据API提供的功能，自定义API的中文名称。 必填，只能包含中文、英文字母、数字、_、-，长度不能超过128个字符。                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   | API英文描述        | 输入API的英文描述，说明API的功能等信息。 必填，不能包含中文字符，长度不能超过1024个字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
   | API中文描述        | 输入API的中文描述，说明API的功能等信息。 必填，长度不能超过1024个字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
   | API责任人         | 必填，选择服务的责任人。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   | 维护人            | 非必填，选择服务的维护人。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
   | 关联领域           | 非必填，选择聚合服务的关联领域，下拉可选值来源于"基础数据管理 \> 领域"的数据。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   | 数据源            | 选择聚合服务实例数据所读取的实例数据库。 必填，仅可选在"基础数据管理 \> 数据源"中，数据源定义"是否用于聚合服务"值为"是"的图数据库和关系型数据库。 此处选择图数据库类型。                                                                                                                                                                                                                                                                                                                                                          |
   | 是否纯脚本服务        | 根据已选数据源类型自动选择值，此处默认为"否"，暂不支持修改。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   | 脚本类型           | 根据已选数据源类型自动选择脚本类型，此处默认"JavaScript"，暂不支持修改。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   | 初始数据实体         | 图结构中的灵魂节点，一般是业务功能实现的核心节点，与多个节点存在关联关系。例如：Offering、Release。 必填，搜索关键字后下拉选择，可选值仅显示实例数据已入图的数据实体。                                                                                                                                                                                                                                                                                                                                                                                                          |
   | 图查询类型          | 必填，包括完全匹配和可选匹配两种查询方式。关于这两种图查询查询类型的区别，请参考[完全匹配与可选匹配返回结果对比示例](https://support.huaweicloud.com/idme_faq/idme_faq_0081.html#section1)。 - 完全匹配：在所有模型路径均存在实例关联时，能高效检索完整路径，常用于实例关系与模型路径完全匹配的场景。  - 可选匹配：在部分模型路径不存在实例关联时，仍将返回已匹配的结果，适用于探索分析可能存在断点的模型路径。   |
   | 支持服务运行结果保存为数据集 | 将API运行结果保存为数据集，后续可直接查表获取服务运行结果，无需再去调用API。 必填，支持选择"是"或"否"。如果选"是"，API发布成功后，您还需完成[数据集配置](https://support.huaweicloud.com/instg-idme/idme_instg_0163.html)。                                                                                                                                                                                                                                                                                                                                              |
      
   
   
5. 填写完后单击"保存并下一步"。 
   进入[步骤2：添加与目标实体相关联的数据实体及关系]阶段。
   
   
 
 #### 步骤2：添加与目标实体相关联的数据实体及关系
完成服务基本信息的填写后，非纯脚本服务通过编辑图结构，添加相关联的数据实体及关系，实现图形化编排数据模型的交互路径，系统会根据编排的图结构生成高效的查询脚本。**请注意，** **在编辑图结构阶段添加关联的数据实体及关系前，请确认目标服务已进入编辑状态。**
以下步骤仅指导您如何在图结构中添加与目标实体相关联的数据实体及关系。如需了解更多编辑图结构的操作，详细请参考[表2](https://support.huaweicloud.com/instg-idme/idme_instg_0349.html#ZH-CN_TOPIC_0000001881237514__table16125413134618)。
1. 选择"服务定义 \> 编辑图结构"阶段，进入图结构编辑页面。
2. 选中实体节点按鼠标右键，在调出的快捷菜单中单击"添加数据实体与关系"，弹出添加关联数据实体与关系窗口。 
   该弹窗列举显示了所有与选中实体相关联的数据实体和关系。
   
   
3. 在添加数据实体\&关系页签，勾选关联的数据实体和关系。 
   如需添加循环关系，请切换至"自循环关系"页签，根据模型的关联属性设置过滤条件。添加循环关系时，需同时设置"循环次数"、"显示名称"、"返回循环次数及父节点ID"和"返回循环路径"等参数。
   ![](https://support.huaweicloud.com/instg-idme/public_sys-resources/note_3.0-zh-cn.png)
   - 在图结构中添加关联的数据实体和关系时，最多只能添加2个运行态数据实体。
   
   - 自循环关系是指一个对象或系统与自身之间存在的循环依赖关系。
    
   
   
4. 单击"确定"保存。图谱中显示已添加实体节点及关系线。
5. 单击"下一步"。 
   进入[步骤3：新增入参]阶段。
   
   
 
 #### 步骤3：新增入参
设置入参是指调用API时，设置需要传入的参数。系统提供默认入参参数，您还可根据需要通过自选入参和自定义入参方式新增入参参数。**请注意，** **设置入参前，请确认目标服务已进入编辑状态。**
表2默认入参参数说明 
| 参数                   | 说明                     |
|:---|:---|
| pageSize             | 必填，每页条目数，即每页显示的数据条目数。  |
| pageNumber           | 必填，分页页码，即返回指定页码的数据条目数。 |
| returnTotalCountFlag | 是否返回数据条目总数。            |
   
以下步骤仅指导您如何通过自选入参方式新增入参参数。如需了解更多设置入参的操作，详细请参考[表3](https://support.huaweicloud.com/instg-idme/idme_instg_0349.html#ZH-CN_TOPIC_0000001881237514__table85644332187)。
1. 选择"服务定义 \> 设置入参"阶段，进入设置入参页面。
2. 在左侧"设置入参"处选中数据实体或关系实体（仅限实体关系），右侧展示该目标实体的属性列表，在列表中勾选入参属性。
3. 在"入参汇总"处查看默认入参参数和已设置的入参参数，设置完入参后，单击"保存"。
4. 完成入参设置后，单击"下一步"。 
   进入[步骤4：新增过滤条件]阶段。
   
   
 
 #### 步骤4：新增过滤条件
设置过滤条件是为在调用API时，缩小查询结果范围，只检索符合过滤条件的数据。当API接收到请求时，可以根据已设置的过滤条件，如日期、关键字、ID或其他用户定义的标准等参数过滤数据。对于返回大型数据集的API ，设置有效过滤可以显著提高性能，并减少需要通过网络传输的数据量。**请注意，设置过滤条件前，请确认目标服务已进入编辑状态。**
以下步骤仅指导您如何新增过滤条件。如需了解更多设置过滤条件的操作，详细请参考[表4](https://support.huaweicloud.com/instg-idme/idme_instg_0349.html#ZH-CN_TOPIC_0000001881237514__table5658245101917)。
1. 选择"服务定义 \> 设置过滤条件"阶段，进入设置过滤条件页面。
2. 在图结构中选中实体或展开右侧"数据实体"或"关系实体"列表后选中实体，新增过滤条件。 
   图2设置过滤条件
   ![](https://support.huaweicloud.com/instg-idme/figure/zh-cn_image_0000002516507237.png "点击放大")
   1. 单击"添加规则"，添加过滤条件。
   
   2. 添加过滤条件的属性。
   
   3. 添加过滤条件的匹配方式。
   
   4. 输入过滤条件。必填，不能输入"\\"；"参数名称+逻辑符+参数值"不能重复，长度不超过128个字符。
   
   5. 配置各过滤条件之间的关系：可选"与"和"或"。
   
   
   
   
3. 设置完成过滤条件后，单击"保存"。
4. 单击"下一步"。 
   进入[步骤5：新增出参]阶段。
   
   
 
 #### 步骤5：新增出参
出参是指调用API后返回给调用方的数据， 设置出参是指设置需要传出的参数。您可根据需要通过自选出参和自定义出参方式新增出参参数。**请注意，** **设置出参前，请确认目标服务已进入编辑状态。**
以下步骤仅指导您如何通过自选出参方式新增出参参数。如需了解更多设置出参的操作，详细请参考[表5](https://support.huaweicloud.com/instg-idme/idme_instg_0349.html#ZH-CN_TOPIC_0000001881237514__table14413516194)。
1. 选择"服务定义 \> 设置出参"阶段，进入设置出参页面。
2. 在左侧"设置出参"处选中数据实体，右侧展示该目标实体的属性列表，在列表中勾选出参属性。 
   **请注意，当输出参数包含非入图属性时，系统会自动生成脚本来获取数据实体的ID。在设置出参时，如果已将非入图属性设为输出参数，则无需再勾选ID作为输出参数。如果在此情况下仍勾选了ID作为输出参数，则不允许对ID的自定义名称进行修改。**
   如果有选择运行态数据实体，且目标实体存在已发布的设备API映射（仅限批量接口），并勾选了设备API映射，后续进入服务开发阶段系统会自动生成图数据库查询和设备API调用脚本。
   ![](https://support.huaweicloud.com/instg-idme/public_sys-resources/note_3.0-zh-cn.png)
   设置出参时，单个运行态数据实体只允许选择一个设备API映射。
   
   
3. 在"出参汇总"处查看已设置的出参，并配置出参信息。 
   ![](https://support.huaweicloud.com/instg-idme/public_sys-resources/note_3.0-zh-cn.png)
   在出参汇总右上角，可以按需开启"是否按数据实体和关系实体分开展示"选项。此选项默认关闭，选择"是"开启后，运行结果将会按数据实体和关系实体分组，再在每组内按照实体分组并去重。这种结构化的数据组织方式，有助于上层应用更高效地解析接口返回结果，建议根据实际需求灵活配置。
   表3配置出参信息 
   | 类型        | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
   |:---|:---|
   | 自定义出参名称   | 自选出参方式新增的出参名称默认显示格式为***{实体英文名称*** **}** _***{*** ***属性名称*** **}**，支持修改。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
   | 是否自定义密级   | 非纯脚本服务的"是否自定义密级"均为"否"，且不支持修改。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
   | 数据实体/关系实体 | 属性归属的实体英文名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   | 属性名称      | 属性英文名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
   | 出参密级      | 属性对应的密级。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
   | 描述        | 自选出参方式新增的出参默认显示属性对应的中文描述，支持修改。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   | 数据类型      | 属性对应的类型。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
   | 聚合配置      | 对出参进行聚合配置，实现对数据表中的数据进行分组。 说明： 未进行聚合配置的参数将默认为分组参数。 根据出参属性的数据类型不同，聚合配置项的可选类型有所不同。各类型代表含义如下： - 平均值：表示数据分组后，计算并显示该属性列中所有值的平均值。  - 最大值：表示数据分组后，查找并显示该属性列的所有值中的最大值。  - 最小值：表示数据分组后，查找并显示该属性列的所有值中的最小值。  - 标准差：表示数据分组后，计算并显示该属性列的所有值的标准差。  - 总和：表示数据分组后，计算并显示该属性列的所有值的总和。  - 计数：表示数据分组后，统计并显示该属性列的所有值的条目数。  - 合并列表：表示数据分组后，列举显示该属性列的所有值（允许相同值出现）。   |
   | 排序优先级     | 优先级分为1到10级，数字越小表示优先级越高，即1为最高优先级，10为最低优先级。 **需注意，系统支持多字段联合排序，最多可配置10个出参组合，且各排序字段的优先级数值须唯一。**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   | 排序类型      | 可选升序或降序。 - 升序：将数据按照对应属性列升序排序。  - 降序：将数据按照对应属性列降序排序。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
      
   
   
4. 设置完出参后，单击"保存"。 
   继续参考[步骤6：生成API]。
   
   
 
 #### 步骤6：生成API
生成API是指完成服务定义后，保存服务定义信息并生成目标服务。
1. 选择"服务定义 \> 设置出参"阶段，进入设置出参页面。
2. 生成API时需区分不同的操作场景，具体如下。 
   - 如果是新增场景，请单击"生成API"。
   
   - 如果是修改场景，请单击"部署"。
   
   
   
   
 
#### 后续操作
完成以上步骤后，您可进入[服务开发](https://support.huaweicloud.com/instg-idme/idme_instg_0151.html)阶段，快速调测服务。
