接口描述
本接口(CreateApi)用于创建 API 接口,创建 API 前,用户需要先创建服务,每个 API 都有自己归属的服务。
输入参数
以下请求参数列表仅列出了接口请求参数,其它参数可参考 公共请求参数。
参数名称 | 是否必选 | 类型 | 描述 |
---|---|---|---|
serviceId | 是 | String | API 所在的服务唯一 ID。 |
apiName | 否 | String | 用户自定义的 API 名称。 |
apiDesc | 否 | String | 用户自定义的 API 接口描述。 |
apiType | 否 | String | API 接口类型,当前只有 NORMAL,后续还会增加其他类型的 API。 |
authType | 否 | String | 鉴权类型,可选值为 SECRET(密钥对鉴权)、NONE(免鉴权)。默认为 NONE。 |
authRequired | 否 | String | 是否需要签名认证,TRUE表示需要,FALSE 表示不需要。默认为 TRUE。如果需要开放在云市场的 API,必须选择 TRUE。 |
enableCORS | 否 | String | 是否需要开启跨域,TRUE 表示需要,FALSE 表示不需要。默认为 FALSE。 |
requestConfig.path | 是 | String | API的前端路径,如/path。 |
requestConfig.method | 是 | String | API 的前端请求方法,如 GET。 |
requestParameters.n.name | 否 | String | API 的前端参数名称。 |
requestParameters.n.position | 否 | String | API 的前端参数位置。,当前仅支持 PATH、QUERY、HEADER。 |
requestParameters.n.type | 否 | String | API 的前端参数类型,如 String、Int 等。 |
requestParameters.n.defaultValue | 否 | String | API 的前端参数默认值。 |
requestParameters.n.required | 否 | Boolean | API 的前端参数是否必填,TRUE:表示必填,FALSE:表示可选。 |
requestParameters.n.desc | 否 | String | API 的前端参数备注。 |
serviceType | 是 | String | API 的后端服务类型,现在支持三种:HTTP、MOCK、SCF。 |
serviceTimeout | 是 | Int | API 的后端服务超时时间,单位是秒。 |
serviceConfig.url | 否 | String | API 的后端服务 URL。如果 serviceType 是 HTTP,则此参数必传,例如 http://api.tencentcs.com/apigw。 |
serviceConfig.path | 否 | String | API 的后端服务路径,如 /path。如果 serviceType 是 HTTP,则此参数必传。前后端的路径可不同。API 网关会对路径做映射。 |
serviceConfig.method | 否 | String | API 的后端服务请求方法,如 GET。如果 serviceType 是 HTTP,则此参数必传。前后端的方法可不同。API 网关会对方法做映射。 |
serviceConfig.uniqVpcId | 否 | String | 使用 VPC 时需填写,代表唯一 vpcId。 |
serviceConfig.product | 否 | String | 和 uniqVpcId 同时使用,目前仅支持 clb 场景,填写“clb”。 |
serviceParameters.n.name | 否 | String | API 的后端服务参数名称。只有 serviceType 是 HTTP 才会用到此参数。后端服务的参数名称可与前端参数名称不同。API 网关会对参数名称做映射。但后端参数值与前端参数值相同。 |
serviceParameters.n.position | 否 | String | API 的后端服务参数位置,如 head。只有 serviceType 是 HTTP 才会用到此参数。后端服务的位置名称可与前端参数位置不同。API 网关会对参数位置做映射。 |
serviceParameters.n.relevantRequestParameterName | 否 | String | API 的后端服务参数对应的前端参数名称。只有 serviceType 是 HTTP 才会用到此参数。 |
serviceParameters.n.relevantRequestParameterPosition | 否 | String | API 的后端服务参数对应的前端参数位置。只有 serviceType 是 HTTP 才会用到此参数。 |
serviceParameters.n.desc | 否 | String | API 的后端服务参数备注。只有 serviceType 是 HTTP 才会用到此参数。 |
constantParameters.n.name | 否 | String | 常量参数名称。只有 serviceType 是 HTTP 才会用到此参数。常量参数为 API 发布者配置在后端的参数,前端调用者不可见。 |
constantParameters.n.desc | 否 | String | 常量参数描述。只有 serviceType 是 HTTP 才会用到此参数。 |
constantParameters.n.position | 否 | String | 常量参数位置。目前仅支持 header 与 query。只有serviceType 是 HTTP 才会用到此参数。 |
constantParameters.n.defaultValue | 否 | String | 常量参数默认值。只有 serviceType 是 HTTP 才会用到此参数。 |
serviceMockReturnMessage | 否 | String | API 的后端 Mock 返回信息。如果 serviceType 是 Mock,则此参数必传。 |
serviceScfFunctionName | 否 | String | API 的后端 SCF 函数名称。如果 serviceType 是 SCF,则此参数必传。 |
serviceScfFunctionNamespace | 否 | String | API 的后端 SCF 函数所属的命名空间。如果 serviceType 是 SCF,则此参数必传。 |
serviceScfIsIntegratedResponse | 否 | String | 是否启用 SCF 集成响应,TRUE 表示开启,FALSE 表示关闭。只有后端是 SCF 类型此参数才有效,默认为 FALSE。 |
serviceScfFunctionQualifier | 否 | String | SCF 版本号,默认为 $LATEST。 |
responseType | 否 | String | 自定义响应配置返回类型,现在只支持 HTML、JSON、TEST、BINARY、XML(此配置仅用于生成 API 文档提示调用者)。 |
responseSuccessExample | 否 | String | 自定义响应配置成功响应示例(此配置仅用于生成 API 文档提示调用者) 。 |
responseFailExample | 否 | String | 自定义响应配置失败响应示例(此配置仅用于生成 API 文档提示调用者) 。 |
responseErrorCodes.n.code | 否 | Int | 自定义响应配置原始错误码(此配置仅用于生成 API 文档提示调用者)。 |
responseErrorCodes.n.convertedCode | 否 | Int | 自定义响应配置映射错误码(此配置仅用于生成 API 文档提示调用者)。 |
responseErrorCodes.n.needConvert | 否 | String | 自定义响应配置是否开启映射(此配置仅用于生成 API 文档提示调用者)。 |
responseErrorCodes.n.msg | 否 | String | 自定义响应配置错误信息(此配置仅用于生成 API 文档提示调用者)。 |
responseErrorCodes.n.desc | 否 | String | 自定义响应配置错误码备注(此配置仅用于生成 API 文档提示调用者)。 |
输出参数
参数名称 | 类型 | 描述 |
---|---|---|
code | Int | 公共错误码,0表示成功,其他值表示失败。详见错误码页面的 公共错误码。 |
codeDesc | String | 业务侧错误码。成功时返回 Success,错误时返回具体业务错误原因。 |
message | String | 模块错误信息描述,与接口相关。 |
apiId | String | API 接口唯一 ID。 |
path | String | 路径。 |
method | String | 请求方法。 |
createdTime | Timestamp | 创建时间。按照 ISO8601 标准表示,并且使用 UTC 时间。格式为:YYYY-MM-DDThh:mm:ssZ。 |
示例
创建一个后端服务是 HTTP 的 API 请求示例如下:
https://apigateway.api.qcloud.com/v2/index.php?
&<公共请求参数>
&Action=CreateApi
&serviceId=service-XX
&apiDesc=myTestApi
&requestConfig.path=/path
&requestConfig.method=GET
&requestParameters.0.name=age
&requestParameters.0.position=HEADER
&requestParameters.0.type=Int
&requestParameters.0.defaultValue=18
&requestParameters.0.required=REQUIRED
&requestParameters.0.description=年龄
&serviceType=Http
&serviceTimeout=60
&serviceConfig.url=cloud.tencent.com
&serviceConfig.path=/path
&serviceConfig.method=GET
&serviceParameters.0.name=age
&serviceParameters.0.in=HEADER
&serviceParameters.0.relevantRequestParameterName=age
&serviceParameters.0.relevantRequestParameterIn=HEADER
&serviceParameters.0.defaultValue=18
&serviceParameters.0.desc=年龄
&constantParameters.0.name=aa
&constantParameters.0.desc=aa
&constantParameters.0.position=HEADER
&constantParameters.0.defaultValue=aa
返回示例如下:
{
"code": "0",
"message": "",
"codeDesc": "Success",
"apiId": "api-XX",
"path": "/path",
"method": "GET",
"createdTime": "2017-08-07T00:00:00Z"
}
创建一个后端服务是 MOCK 的 API 请求示例如下:
https://apigateway.api.qcloud.com/v2/index.php?
&<公共请求参数>
&Action=CreateApi
&serviceId=service-XX
&apiDescription=myTestApi
&requestConfig.path=/path
&requestConfig.method=GET
&requestConfig.protocol=Http
&requestParameters.0.name=age
&requestParameters.0.in=HEADER
&requestParameters.0.type=Int
&requestParameters.0.defaultValue=18
&requestParameters.0.required=REQUIRED
&requestParameters.0.desc=年龄
&serviceType=MOCK
&serviceTimeout=60
&serviceMockReturnMessage=MOCK 的返回信息
返回示例如下:
{
"code": "0",
"message": "",
"codeDesc": "Success",
"apiId": "api-XXX",
"path": "/path",
"method": "GET",
"createdTime": "2017-08-07T00:00:00Z"
}
创建一个后端服务是 SCF 的 API 请求示例如下:
https://apigateway.api.qcloud.com/v2/index.php?
&<公共请求参数>
&Action=CreateApi
&serviceId=service-XX
&apiDescription=myTestApi
&requestConfig.path=/path
&requestConfig.method=GET
&requestConfig.protocol=Http
&requestParameters.0.name=age
&requestParameters.0.in=HEADER
&requestParameters.0.type=Int
&requestParameters.0.defaultValue=18
&requestParameters.0.required=REQUIRED
&requestParameters.0.description=年龄
&serviceType=SCF
&serviceTimeout=60
&serviceScfFunctionName=myScfFunction
返回示例如下:
{
"code": "0",
"message": "",
"codeDesc": "Success",
"apiId": "api-XXXX",
"path": "/path",
"method": "GET",
"createdTime": "2017-08-07T00:00:00Z"
}