
# 测试后端API
#### 功能介绍
测试后端API是否可用。
#### URI
POST /v1/{project_id}/apic/instances/{instance_id}/livedata-apis/test
表1路径参数 
| 参数          | 是否必选 | 参数类型   | 描述                                  |
|:---|:---|:---|:---|
| project_id  | 是    | String | 项目ID，获取方式请参见API参考的"附录 \> 获取项目ID"章节。 |
| instance_id | 是    | String | 实例ID                                |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                       |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | 用户Token。通过调用IAM服务获取用户Token接口获取（响应消息头中X-Subject-Token的值）。 |
   
表3请求Body参数 
| 参数         | 是否必选 | 参数类型                                                               | 描述        |
|:---|:---|:---|:---|
| id         | 是    | String                                                             | 后端API编号   |
| parameters | 否    | [LdApiParameter] object | 后端API请求参数 |
   
 表4LdApiParameter 
| 参数          | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|:---|
| 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：不必须                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   
#### 响应参数
**状态码：200**
表5响应Body参数 
| 参数             | 参数类型    | 描述       |
|:---|:---|:---|
| testStatusCode | String  | 测试返回的状态码 |
| testRequest    | String  | 测试的请求内容  |
| testUsedtime   | Integer | 测试耗时     |
| testOperator   | String  | 测试者的项目编号 |
| testResponse   | String  | 测试的响应内容  |
| testMethod     | String  | 测试的请求方法  |
| testID         | Integer | 测试编号     |
| testDate       | String  | 测试时间     |
| apiUUID        | String  | 后端API编号  |
   
**状态码：400**
表6响应Body参数 
| 参数         | 参数类型   | 描述   |
|:---|:---|:---|
| error_code | String | 错误码  |
| error_msg  | String | 错误描述 |
   
**状态码：401**
表7响应Body参数 
| 参数         | 参数类型   | 描述   |
|:---|:---|:---|
| error_code | String | 错误码  |
| error_msg  | String | 错误描述 |
   
**状态码：403**
表8响应Body参数 
| 参数         | 参数类型   | 描述   |
|:---|:---|:---|
| error_code | String | 错误码  |
| error_msg  | String | 错误描述 |
   
**状态码：404**
表9响应Body参数 
| 参数         | 参数类型   | 描述   |
|:---|:---|:---|
| error_code | String | 错误码  |
| error_msg  | String | 错误描述 |
   
**状态码：500**
表10响应Body参数 
| 参数         | 参数类型   | 描述   |
|:---|:---|:---|
| error_code | String | 错误码  |
| error_msg  | String | 错误描述 |
   
#### 请求示例
```
{
  "id" : "bd42841c20184da6bbf457c6d8a06e37",
  "parameter" : [ {
    "name" : "header",
    "in" : "Headers",
    "required" : false,
    "default" : "test"
  } ]
}
```
#### 响应示例
**状态码：200**
OK
```
{
  "apiUUID" : "bd42841c20184da6bbf457c6d8a06e37",
  "testDate" : "2020-09-19T06:40:52Z",
  "testID" : 2524356,
  "testMethod" : "GET",
  "testOperator" : "73d69ae0cfcf460190522d06b60f05ad",
  "testRequest" : "{\"apiUUID\":\"bd42841c20184da6bbf457c6d8a06e37\",\"method\":\"GET\",\"params\":[{\"paramDesc\":\"\",\"paramName\":\"header\",\"paramRequired\":\"0\",\"paramType\":\"Headers\",\"paramValue\":\"test\"}],\"testUrl\":\"/test/function\"}",
  "testResponse" : "Hello world!",
  "testStatusCode" : "200",
  "testUsedtime" : 29
}
```
**状态码：400**
Bad Request
```
{
  "error_code" : "APIG.2011",
  "error_msg" : "Invalid parameter value,parameterName:instance_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.3084",
  "error_msg" : "The livedata API does not exist, id: bd42841c20184da6bbf457c6d8a06e37"
}
```
**状态码：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)。
