
# 创建后端API脚本 - CreateLiveDataApiScriptV2
#### 功能介绍
在某个实例中创建后端API脚本。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/ROMA/doc?api=CreateLiveDataApiScriptV2)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-roma/roma_06_0018.html)。
#### URI
POST /v2/{project_id}/apic/instances/{instance_id}/livedata-apis/{ld_api_id}/scripts
表1路径参数 
| 参数          | 是否必选 | 参数类型   | 描述                                  |
|:---|:---|:---|:---|
| project_id  | 是    | String | 项目ID，获取方式请参见API参考的"附录 \> 获取项目ID"章节。 |
| instance_id | 是    | String | 实例ID                                |
| ld_api_id   | 是    | String | 后端API的编号                            |
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                       |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | 用户Token。通过调用IAM服务获取用户Token接口获取（响应消息头中X-Subject-Token的值）。 |
   
表3请求Body参数 
| 参数       | 是否必选 | 参数类型                                                                                    | 描述                                  |
|:---|:---|:---|:---|
| api_type | 否    | String                                                                                  | API类型 - data：数据API - function：函数API |
| scripts  | 否    | Array of [LdApiScriptBase] objects | API脚本信息列表                           |
   
 表4LdApiScriptBase 
| 参数                      | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|:---|
| ds_id                   | 否    | String  | 数据源编号，当api_type = data时，必选                                                                                                                                                                                                                                                                                      |
| ds_name                 | 否    | String  | 数据源名称                                                                                                                                                                                                                                                                                                           |
| ds_type                 | 否    | String  | 数据源类型： - oracle：oracle数据源类型 - mysql：mysql数据源类型 - mongodb：mongodb数据源类型 - redis：redis数据源类型 - postgresql：postgresql/opengauss数据源类型 - hive：hive数据源类型 - mssql：sqlserver数据源类型 - sqlserver：sqlserver数据源类型 - dws：dws数据源类型 - gauss100：gauss100数据源类型 - zenith：zenith数据源类型 - hana: hana数据源类型 - clickhouse: clickhouse数据源类型 |
| type                    | 否    | String  | 脚本类型 - SQL：sql语句 - SP：存储过程                                                                                                                                                                                                                                                                                      |
| object_name             | 是    | String  | 返回对象。                                                                                                                                                                                                                                                                                                           |
| content                 | 是    | String  | API脚本内容 请对脚本进行base64编码                                                                                                                                                                                                                                                                                          |
| enable_result_paging    | 否    | Boolean | 数据脚本是否结果分页，当api_type = data时有效                                                                                                                                                                                                                                                                                  |
| enable_preparestatement | 否    | Boolean | 数据脚本是否预编译，当api_type = data时有效                                                                                                                                                                                                                                                                                   |
   
#### 响应参数
**状态码：200**
表5响应Body参数 
| 参数               | 参数类型                                                                                   | 描述                                                                                        |
|:---|:---|:---|
| name             | String                                                                                 | 后端API名称。 支持汉字、英文、数字、中划线、下划线、点、斜杠、中英文格式下的小括号和冒号、中文格式下的顿号，且只能以英文、汉字和数字开头。                   |
| path             | String                                                                                 | 后端API请求路径。 支持英文、数字、中划线、下划线、点等，且以斜杠（/）开头。 更新后端API时，status=4为后端API的已部署状态，该状态下后端API请求路径不能修改。 |
| method           | String                                                                                 | 后端API请求方法。 支持GET、PUT、POST、DELETE 更新后端API时，status=4为后端API的已部署状态，该状态下后端API请求方法不能修改。         |
| description      | String                                                                                 | 后端API描述。 不支持\<，\>字符                                                                       |
| version          | String                                                                                 | 后端API版本 支持英文，数字，下划线，中划线，点。                                                                |
| content_type     | String                                                                                 | 后端API返回类型 - json - xml - stream                                                           |
| api_signature_id | String                                                                                 | 后端API为签名认证时绑定的签名密钥编号                                                                      |
| roma_app_id      | String                                                                                 | 后端API归属的集成应用编号 更新后端API时，status=4为后端API的已部署状态，该状态下后端API归属的集成应用编号不能修改。                      |
| return_format    | Boolean                                                                                | API响应信息是否格式化 true： 对响应信息进行格式化 false：对响应信息格式化不进行格式化                                        |
| parameters       | Array of [LdApiParameter] objects | 后端API的请求参数列表                                                                              |
| id               | String                                                                                 | 后端API编号                                                                                   |
| instance         | String                                                                                 | 后端API所属实例编号                                                                               |
| type             | String                                                                                 | 后端API类型： - data：数据后端 - function： 函数后端                                                     |
| status           | Integer                                                                                | 后端API状态： - 1：待开发 - 3：开发中 - 4：已部署                                                          |
| created_time     | String                                                                                 | 后端API创建时间                                                                                 |
| modified_time    | String                                                                                 | 后端API修改时间                                                                                 |
| scripts          | Array of [LdApiScript] objects       | 后端API脚本信息                                                                                 |
| roma_app_name    | String                                                                                 | 后端API归属的集成应用名称                                                                            |
   
 表6LdApiParameter 
| 参数          | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|
| name        | String  | 参数名称： - 参数位于Headers、 Parameters时，用户自行定义，支持英文、数字、点、中划线、下划线，且需要英文开头，不区分大小写。 - 参数位于Body时候，参数以application/json、application/xml、application/text为名，但实际是以请求body里的键值对作为参数名和参数值，比如请求消息样例，参数名为application/json，参数值为{"table":"apic01","id":"1"}，后端取table：apic01，id：1这两个键值对作为入参。 - 注意：定义参数不要重名，否则会覆盖掉，当Headers、Parameters重复时候，Parameters会被覆盖，当Parameters和Body里的键值对重复时候，Parameters会被覆盖。 |
| in          | String  | 该参数在调用API时候所放的位置： - Headers ：放于请求头 - Parameters ：放于请求参数 - Body：放于请求体                                                                                                                                                                                                                                                                                                        |
| default     | String  | 参数默认值                                                                                                                                                                                                                                                                                                                                                                       |
| description | String  | 参数描述 不支持\<，\>字符                                                                                                                                                                                                                                                                                                                                                             |
| required    | Boolean | 参数是否必须。true：必须，false：不必须                                                                                                                                                                                                                                                                                                                                                    |
   
 表7LdApiScript 
| 参数                      | 参数类型    | 描述                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|
| ds_id                   | String  | 数据源编号，当api_type = data时，必选                                                                                                                                                                                                                                                                                      |
| ds_name                 | String  | 数据源名称                                                                                                                                                                                                                                                                                                           |
| ds_type                 | String  | 数据源类型： - oracle：oracle数据源类型 - mysql：mysql数据源类型 - mongodb：mongodb数据源类型 - redis：redis数据源类型 - postgresql：postgresql/opengauss数据源类型 - hive：hive数据源类型 - mssql：sqlserver数据源类型 - sqlserver：sqlserver数据源类型 - dws：dws数据源类型 - gauss100：gauss100数据源类型 - zenith：zenith数据源类型 - hana: hana数据源类型 - clickhouse: clickhouse数据源类型 |
| type                    | String  | 脚本类型 - SQL：sql语句 - SP：存储过程                                                                                                                                                                                                                                                                                      |
| object_name             | String  | 返回对象。                                                                                                                                                                                                                                                                                                           |
| content                 | String  | API脚本内容 请对脚本进行base64编码                                                                                                                                                                                                                                                                                          |
| enable_result_paging    | Boolean | 数据脚本是否结果分页，当api_type = data时有效                                                                                                                                                                                                                                                                                  |
| enable_preparestatement | Boolean | 数据脚本是否预编译，当api_type = data时有效                                                                                                                                                                                                                                                                                   |
| created_time            | String  | 后端API脚本创建时间                                                                                                                                                                                                                                                                                                     |
| modified_time           | String  | 后端API脚本修改时间                                                                                                                                                                                                                                                                                                     |
   
**状态码：400**
表8响应Body参数 
| 参数         | 参数类型   | 描述   |
|:---|:---|:---|
| error_code | String | 错误码  |
| error_msg  | String | 错误描述 |
   
**状态码：401**
表9响应Body参数 
| 参数         | 参数类型   | 描述   |
|:---|:---|:---|
| error_code | String | 错误码  |
| error_msg  | String | 错误描述 |
   
**状态码：403**
表10响应Body参数 
| 参数         | 参数类型   | 描述   |
|:---|:---|:---|
| error_code | String | 错误码  |
| error_msg  | String | 错误描述 |
   
**状态码：404**
表11响应Body参数 
| 参数         | 参数类型   | 描述   |
|:---|:---|:---|
| error_code | String | 错误码  |
| error_msg  | String | 错误描述 |
   
**状态码：500**
表12响应Body参数 
| 参数         | 参数类型   | 描述   |
|:---|:---|:---|
| error_code | String | 错误码  |
| error_msg  | String | 错误描述 |
   
#### 请求示例
为指定自定义后端创建脚本，后端类型为函数后端，脚本类型为SQL
```
{
  "api_type" : "function",
  "scripts" : [ {
    "type" : "SQL",
    "object_name" : "fun",
    "content" : "ZnVuY3Rpb24gZXhlY3V0ZShkYXRhKSB7CiAgICByZXR1cm4gIkhlbGxvIHdvcmxkISIKfQ=="
  } ]
}
```
#### 响应示例
**状态码：200**
OK
```
{
  "content_type" : "json",
  "created_time" : "2020-09-18T09:25:59Z",
  "description" : "",
  "id" : "bd42841c20184da6bbf457c6d8a06e37",
  "instance" : "f0fa1789-3b76-433b-a787-9892951c620e",
  "method" : "GET",
  "modified_time" : "2020-09-18T09:25:59Z",
  "name" : "livedata_api_demo",
  "parameters" : [ ],
  "path" : "/test/function",
  "return_format" : false,
  "roma_app_id" : "98df09fb-d459-4cbf-83a7-2b55ca6f3d5d",
  "scripts" : [ {
    "type" : "SQL",
    "object_name" : "fun",
    "content" : "ZnVuY3Rpb24gZXhlY3V0ZShkYXRhKSB7CiAgICByZXR1cm4gIkhlbGxvIHdvcmxkISIKfQ==",
    "created_time" : "2020-09-19T06:29:35Z",
    "modified_time" : "2020-09-19T06:29:35Z"
  } ],
  "status" : 1,
  "type" : "function",
  "version" : "1.0.1"
}
```
**状态码：400**
Bad Request
```
{
  "error_code" : "APIG.2011",
  "error_msg" : "Invalid parameter value,parameterName:id. Please refer to the support documentation"
}
```
**状态码：401**
Unauthorized
```
{
  "error_code" : "APIG.1002",
  "error_msg" : "Incorrect token or token resolution failed"
}
```
**状态码：403**
Forbidden
```
{
  "error_code" : "APIG.1005",
  "error_msg" : "No permissions to request this method"
}
```
**状态码：404**
Not Found
```
{
  "error_code" : "APIG.3081",
  "error_msg" : "authorizer with id: 0d982c1ac3da493dae47627b6439fc5c not found"
}
```
**状态码：500**
Internal Server Error
```
{
  "error_code" : "APIG.9999",
  "error_msg" : "System error"
}
```
#### 状态码
| 状态码 | 描述                    |
|:---|:---|
| 200 | OK                    |
| 400 | Bad Request           |
| 401 | Unauthorized          |
| 403 | Forbidden             |
| 404 | Not Found             |
| 500 | Internal Server Error |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-roma/ErrorCode.html)。
