
# 编排API简介
数据服务API编排是指将已经开发好的服务API接口，在无需编写复杂代码的情况下，根据特定的业务逻辑和流程进行可视化的重组和重构，从而实现在不影响原生接口的前提下进行简便的二次开发。API编排为您提供拖拽式、可视化的API工作流程编排能力，您可以按照业务逻辑，以串行、并行等结构组合多个API为工作流，然后通过入口API调用API工作流，最终返回所需数据。
API编排使得业务流程的设计和优化变得更加直观和高效，同时也为二次开发提供了更便捷的方式。您可以在如下场景中使用API编排，简化开发工作：
- [对返回消息进行映射或格式转换](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0330.html#dataartsstudio_01_0330__zh-cn_topic_0180012632_section579414314409)：通过API编排的方式能够灵活实现消息映射及格式转换。
- [数据请求依赖多个数据API](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0330.html#dataartsstudio_01_0330__zh-cn_topic_0180012632_section18624154416414)：使用API编排后，可以降低调用次数，减少集成成本，提升调用效率。
 
#### 约束与限制
- 仅3.0.6及以上版本的数据服务专享版集群支持API编排。
- API工作流发布前，需确保其中的普通API均已处于已发布状态。
 
#### 算子和工作流简介
在API工作流编排页面，您可以自由拖拽各类算子到画布中，然后基于特定的业务逻辑和流程通过连线编排工作流，最后配置算子，完成后即可保存、调试及发布工作流。
API编排支持五类可拖拽的算子，分别为：入口API、普通API、条件分支、并行处理和输出处理。其中，入口API位于最上游，输出处理位于最下游，中间部分可以是普通API、条件分支和并行处理这三类算子的任意组合。注意，编排工作流时需要满足如下要求：
- 有且只有一个入口API算子，并位于最上游，向下只能有一个分支。
- 至少有一个普通API算子，并位于中间层，上下游均有其他算子，向下只能有一个分支。
- 条件分支算子可选，位于中间层，必须至少有2个分支，最多支持20个分支，多个分支满足条件时仅执行第一个满足条件的分支。 注意，条件分支的直接下游不能为输出处理算子，只能获取上级算子请求参数或结果集进行条件判断。
  
- 并行处理算子可选，位于中间层，必须至少有2个分支，最多支持20个分支，必须配置失败策略。 注意，并行处理的直接下游不能为输出处理算子，只能支持同时执行多个分支逻辑，分支间互不影响。
  
- 有且只有一个输出处理算子，并位于最下游，直接上游必须为普通API算子，必须配置至少一个结果映射。
- API工作流不能有环状结构，不能有孤立算子，最多支持20层深度。
 
图1API工作流编排页面   
![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000001907319873.png "点击放大")
表1API工作流算子介绍 
| 配置入口      | 算子        | 是否必选 | 介绍                                                                                                                                                                                                                                                                                                                                                            |
|:---|:---|:---|:---|
| **触发器**   | **入口API** | 必选   | 入口API算子是API工作流的入口，工作流发布后可通过调用入口API来调用API工作流。在入口API算子内需定义API工作流的名称、URL、参数协议、请求方式、审核人、安全认证以及请求参数。 入口API算子的配置方法，详见[配置入口API算子](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0326.html)。                                                                                                    |
| **API目录** | **普通API** | 必选   | 普通API是执行数据查询操作的算子。普通API即已创建的数据API，编排API时您可以从API目录内拖拽一个普通API作为执行算子进行取数，并将请求参数或结果集作为变量传递下去。 普通API可参考[配置方式生成API](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0305.html)或[脚本/MyBatis方式生成API](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0306.html)进行创建。 |
| **逻辑控制器** | **条件分支**  | 非必选  | 条件分支算子通过获取上游算子的请求参数或结果集进行条件判断，根据定义的表达式来确定下一步执行的分支。注意，多个分支满足条件时仅执行第一个满足条件的分支。 条件分支算子和表达式的配置方法，详见[配置条件分支算子](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0327.html)。                                                                                                                  |
| **逻辑控制器** | **并行处理**  | 非必选  | 并行处理算子可以同时执行多个分支逻辑，分支间互不影响。 并行处理算子的配置方法，详见[配置并行处理算子](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0328.html)。                                                                                                                                                                        |
| **逻辑控制器** | **输出处理**  | 必选   | 输出处理算子负责对API工作流的执行结果进行错误码映射、结果集映射和格式转换，以确定最终返回的数据格式。 输出处理算子的配置方法，详见[配置输出处理算子](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0329.html)。                                                                                                                                                 |
   
