
# 执行自定义操作 - ExecuteCustomAction
#### 功能介绍
执行指定的自定义操作。
#### URI
POST /ges/v1.0/{project_id}/graphs/{graph_name}/action?action_id=execute-operation
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|:---|
| project_id | 是    | String | **参数解释：** 项目编号。获取方法，请参见[获取项目ID](https://support.huaweicloud.com/api-ges/ges_03_0111.html)。 **约束限制：** 不涉及。 **取值范围：** 只能由英文字母和数字组成，且长度为\[1-64\]个字符。 **默认取值：** 不涉及。 |
| graph_name | 是    | String | **参数解释：** 图名称。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                          |
   
#### 请求参数
表2Body参数说明 
| 参数      | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|:---|
| api     | 是    | String | **参数解释：** 该自定义操作使用的API命令。 **约束限制：** 不涉及。 **取值范围：** 支持的api有cypher查询、Gremlin查询、算法API、路径查询API。 **默认取值：** 不涉及。 |
| command | 是    | String | **参数解释：** 该自定义操作集执行的具体指令。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                    |
   
#### 响应参数
表3响应body参数说明 
| 参数           | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|
| errorMessage | String | **参数解释**： 系统提示信息。 - 执行成功时，字段可能为空。  - 执行失败时，用于显示错误信息。   **取值范围**： 不涉及。     |
| errorCode    | String | **参数解释**： 系统提示信息。 - 执行成功时，字段可能为空。  - 执行失败时，用于显示错误码。   **取值范围**： 不涉及。 |
| data         | json   | **参数解释**： 自定义操作执行结果。请求失败时，该字段为空。 **取值范围**： 不涉及。                                                                                                                                                                                  |
   
#### 请求示例
执行指定的自定义操作，该自定义操作使用的API命令为gremlin，具体指令为{\\"command\\": \\"g.V('1')\\"}。
```
POST /ges/v1.0/{project_id}/graphs/{graph_name}/action?action_id=execute-operation
{
    "api": "gremlin",
    "command": "{\"command\": \"g.V('1')\"}"
}
```
#### 响应示例
**状态码： 200**
成功响应示例
```
{
     "data":{
         "vertices":[
             {
                 "id":"1",
                 "label":"movie",
                 "properties":{
                     "genres":[
                         "Comedy"
                     ],
                     "movieid":[
                         1
                     ],
                     "title":[
                         "Airplane! (1980)"
                     ]
                 }
             }
         ],
         "runtime":0.126476598
     }
 }
```
**状态码： 400**
失败响应示例
```
Internal Server Error
{  
     "errorCode":"GES.8814",
     "errorMessage":"Unsupported API."
 }
```
#### 状态码
| 返回值                       | 说明      |
|:---|:---|
| 400 Bad Request           | 请求错误。   |
| 401 Unauthorized          | 鉴权失败。   |
| 403 Forbidden             | 没有操作权限。 |
| 404 Not Found             | 找不到资源。  |
| 500 Internal Server Error | 服务内部错误。 |
| 503 Service Unavailable   | 服务不可用。  |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-ges/ges_03_0110.html)。
