
# 编排服务编排 - OrchestrateFlow
#### 功能介绍
编排某个服务编排。除简单运行外还可以对服务编排进行分步执行，支持启动服务编排、运行服务编排、执行下一步、执行上一步、正常完成服务编排、终止（删除）服务编排运行实例等操作，传入参数包括需要执行的操作名称和需要执行的服务编排名称或服务编排ID。
#### URI
POST *华为云Astro轻应用域名*/u-route/baas/v1.0/flow/{action}/{name_or_id}
表1参数说明 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|:---|
| action     | 是    | String | **参数解释**： 需要对服务编排执行的操作。 **约束限制**： 不涉及。 **取值范围**： 各个操作取值及其含义如下： - start：启动服务编排，系统标准启动操作。  - run：开始执行服务编排，自定义启动操作。  - next：执行服务编排的下一步。  - back：执行服务编排的上一步。  - finish：结束运行的服务编排，即正常完成服务编排。  - terminate：终止运行的服务编排实例和相关资源。  - del：删除服务编排实例和相关资源。   **默认取值**： 不涉及。 |
| name_or_id | 是    | String | **参数解释**： 当action取值为start或run时，设置为服务编排的名称。其他操作设置为服务编排的运行实例ID，可通过调用[查看服务编排运行实例 - QueryFlowInstance](https://support.huaweicloud.com/api-astrozero/astrozero_api_0060.html)接口查看（响应消息中的"id"）。 **约束限制**： 不涉及。 **取值范围**： 不涉及。 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
   
#### 请求参数
请求体中的参数均为用户自定义的，为该服务编排中定义的输入参数，具体参数视服务编排而定。
#### 响应参数
表2响应参数 
| 参数      | 参数类型                                                     | 描述                                                                                                                                                                                                                                                    |
|:---|:---|:---|
| resCode | String                                                   | **参数解释**： 返回码。 **取值范围**： 如果返回"0"代表请求成功，其他错误码说明请参考[错误码（数据面）](https://support.huaweicloud.com/api-astrozero/astrozero_api_0082.html)。 |
| resMsg  | String                                                   | **参数解释**： 返回消息。 **取值范围**： 成功返回"成功"，其他情况会返回具体的错误信息。                                                                                      |
| result  | [result] object | **参数解释**： 成功请求时，会返回interviewId和outputs两个字段。                                                                                                                                                                      |
   
 表3result字段说明 
| 参数          | 参数类型   | 描述                                                                                                                                                                              |
|:---|:---|:---|
| interviewId | String | **参数解释**： 服务编排的运行实例ID。流程启动成功后，可以从返回结果中获取到运行实例ID。 **取值范围**： 不涉及。 |
| outputs     | Any    | **参数解释**： 服务编排的执行结果，由服务编排输出决定，可为任意取值。                                                                                                       |
   
#### 请求示例
开始运行服务编排，例如调用start命令执行了服务编排"testFlowXyz"，传入参数为自定义的参数。
```
POST https://华为云Astro轻应用域名/u-route/baas/v1.0/flow/start/testFlowXyz
{
    "paramA": "valueA",
    "paramB": {
        "subParamBA": [
            "A",
            "B"
        ],
        "subParamBB": "BB"
    }
}
```
#### 响应示例
```
{
    "resCode": "0",
    "resMsg": "成功",
    "result": {
         "interviewId": "1234567890",
         "outputs": {
             "outA": "123",
             "outB": "456"
         }
}
}
```
#### 状态码
状态码请参见[状态码](https://support.huaweicloud.com/api-astrozero/astrozero_api_0081.html)。
#### 错误码
错误码请参见[错误码（数据面）](https://support.huaweicloud.com/api-astrozero/astrozero_api_0082.html)。
