创建API
功能介绍
添加一个API,API即一个服务接口,具体的服务能力。
API分为两部分,第一部分为面向API使用者的API接口,定义了使用者如何调用这个API。第二部分面向API提供者,由API提供者定义这个API的真实的后端情况,定义了API网关如何去访问真实的后端服务。API的真实后端服务目前支持四种类型:传统的HTTP/HTTPS形式的web后端、函数工作流、MOCK。
调用方法
请参见如何调用API。
URI
POST /v2/{project_id}/apigw/instances/{instance_id}/apis
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
project_id |
是 |
String |
项目ID,获取方式请参见获取项目ID。 |
instance_id |
是 |
String |
实例ID,在API网关控制台的“实例信息”中获取。 |
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
X-Auth-Token |
是 |
String |
用户Token。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
name |
是 |
String |
API名称。 支持汉字、英文、数字、中划线、下划线、点、斜杠、中英文格式下的小括号和冒号、中文格式下的顿号,且只能以英文、汉字和数字开头,3-255个字符。
说明:
中文字符必须为UTF-8或者unicode编码。 |
type |
是 |
Integer |
API类型
枚举值:
|
version |
否 |
String |
API的版本 最大长度:16 |
req_protocol |
是 |
String |
API的请求协议
缺省值:HTTPS 枚举值:
|
req_method |
是 |
String |
API的请求方式 枚举值:
|
req_uri |
是 |
String |
请求地址。可以包含请求参数,用{}标识,比如/getUserInfo/{userId},支持 * / %- _ . 等特殊字符,总长度不超过512,且满足URI规范。
说明:
需要服从URI规范。 |
auth_type |
是 |
String |
API的认证方式
枚举值:
|
auth_opt |
否 |
AuthOpt object |
认证方式参数 |
cors |
否 |
Boolean |
是否支持跨域
缺省值:false 枚举值:
|
match_mode |
否 |
String |
API的匹配方式
枚举值:
|
backend_type |
是 |
String |
后端类型
枚举值:
|
remark |
否 |
String |
API描述。字符长度不超过255
说明:
中文字符必须为UTF-8或者unicode编码。 |
group_id |
是 |
String |
API所属的分组编号 |
body_remark |
否 |
String |
API请求体描述,可以是请求体示例、媒体类型、参数等信息。字符长度不超过20480
说明:
中文字符必须为UTF-8或者unicode编码。 |
result_normal_sample |
否 |
String |
正常响应示例,描述API的正常返回信息。字符长度不超过20480
说明:
中文字符必须为UTF-8或者unicode编码。 |
result_failure_sample |
否 |
String |
失败返回示例,描述API的异常返回信息。字符长度不超过20480
说明:
中文字符必须为UTF-8或者unicode编码。 |
authorizer_id |
否 |
String |
前端自定义认证对象的ID |
tags |
否 |
Array of strings |
标签。 支持英文,数字,中文,特殊符号(-*#%.:_),且只能以中文或英文开头。 默认支持10个标签,如需扩大配额请联系技术工程师修改API_TAG_NUM_LIMIT配置。 最小长度:1 最大长度:128 |
response_id |
否 |
String |
分组自定义响应ID |
roma_app_id |
否 |
String |
集成应用ID 暂不支持 |
domain_name |
否 |
String |
API绑定的自定义域名 暂不支持 |
tag |
否 |
String |
标签 待废弃,优先使用tags字段 |
content_type |
否 |
String |
请求内容格式类型: application/json application/xml multipart/form-data text/plain 暂不支持 枚举值:
|
mock_info |
否 |
ApiMockCreate object |
mock后端详情 |
func_info |
否 |
ApiFuncCreate object |
函数后端详情 |
req_params |
否 |
Array of ReqParamBase objects |
API的请求参数列表,API请求协议为GRPC类型时不支持配置 |
backend_params |
否 |
Array of BackendParamBase objects |
API的后端参数列表,API请求协议为GRPC类型时不支持配置 |
policy_mocks |
否 |
Array of ApiPolicyMockCreate objects |
mock策略后端列表 |
policy_functions |
否 |
Array of ApiPolicyFunctionCreate objects |
函数工作流策略后端列表 |
backend_api |
否 |
BackendApiCreate object |
web后端详情 |
policy_https |
否 |
Array of ApiPolicyHttpCreate objects |
web策略后端列表 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
app_code_auth_type |
否 |
String |
AppCode简易认证类型,仅在auth_type为APP时生效,默认为DISABLE:
缺省值:DISABLE 枚举值:
|
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
remark |
否 |
String |
描述信息。长度不超过255个字符
说明:
中文字符必须为UTF-8或者unicode编码。 |
result_content |
否 |
String |
返回结果 |
version |
否 |
String |
版本。字符长度不超过64 |
authorizer_id |
否 |
String |
后端自定义认证ID |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
function_urn |
是 |
String |
函数URN |
remark |
否 |
String |
描述信息。长度不超过255个字符
说明:
中文字符必须为UTF-8或者unicode编码。 |
invocation_type |
是 |
String |
调用类型
枚举值:
|
network_type |
是 |
String |
对接函数的网络架构类型
枚举值:
|
version |
否 |
String |
函数版本 当函数别名URN和函数版本同时传入时,函数版本将被忽略,只会使用函数别名URN 最大长度:64 |
alias_urn |
否 |
String |
函数别名URN 当函数别名URN和函数版本同时传入时,函数版本将被忽略,只会使用函数别名URN |
timeout |
是 |
Integer |
API网关请求后端服务的超时时间。最大超时时间可通过实例特性backend_timeout配置修改,可修改的上限为600000。 单位:毫秒。 最小值:1 |
authorizer_id |
否 |
String |
后端自定义认证ID |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
name |
是 |
String |
参数名称。 长度为1 ~ 32位的字符串,字符串由英文字母、数字、中划线、下划线、英文句号组成,且只能以英文开头。 |
type |
是 |
String |
参数类型 枚举值:
|
location |
是 |
String |
参数位置 枚举值:
|
default_value |
否 |
String |
参数默认值 |
sample_value |
否 |
String |
参数示例值 |
required |
否 |
Integer |
是否必须
location为PATH时,required默认为1,其他场景required默认为2 枚举值:
|
valid_enable |
否 |
Integer |
是否开启校验
缺省值:2 枚举值:
|
remark |
否 |
String |
描述信息。长度不超过255个字符
说明:
中文字符必须为UTF-8或者unicode编码。 |
enumerations |
否 |
String |
参数枚举值 |
min_num |
否 |
Integer |
参数最小值 参数类型为NUMBER时有效 |
max_num |
否 |
Integer |
参数最大值 参数类型为NUMBER时有效 |
min_size |
否 |
Integer |
参数最小长度 参数类型为STRING时有效 |
max_size |
否 |
Integer |
参数最大长度 参数类型为STRING时有效 |
regular |
否 |
String |
正则校验规则 暂不支持 |
json_schema |
否 |
String |
JSON校验规则 暂不支持 |
pass_through |
否 |
Integer |
是否透传
枚举值:
|
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
result_content |
否 |
String |
返回结果 |
effect_mode |
是 |
String |
关联的策略组合模式:
枚举值:
|
name |
是 |
String |
策略后端名称。字符串由中文、英文字母、数字、下划线组成,且只能以中文或英文开头。 最小长度:3 最大长度:64 |
backend_params |
否 |
Array of BackendParamBase objects |
后端参数列表 |
conditions |
是 |
Array of ApiConditionBase objects |
策略条件列表 |
authorizer_id |
否 |
String |
后端自定义认证对象的ID |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
function_urn |
是 |
String |
函数URN |
invocation_type |
是 |
String |
调用类型
枚举值:
|
network_type |
是 |
String |
对接函数的网络架构类型
枚举值:
|
version |
否 |
String |
函数版本 当函数别名URN和函数版本同时传入时,函数版本将被忽略,只会使用函数别名URN 最大长度:64 |
alias_urn |
否 |
String |
函数别名URN 当函数别名URN和函数版本同时传入时,函数版本将被忽略,只会使用函数别名URN |
timeout |
否 |
Integer |
API网关请求后端服务的超时时间。最大超时时间可通过实例特性backend_timeout配置修改,可修改的上限为600000。 单位:毫秒。 最小值:1 |
effect_mode |
是 |
String |
关联的策略组合模式:
枚举值:
|
name |
是 |
String |
策略后端名称。字符串由中文、英文字母、数字、下划线组成,且只能以中文或英文开头。 最小长度:3 最大长度:64 |
backend_params |
否 |
Array of BackendParamBase objects |
后端参数列表 |
conditions |
是 |
Array of ApiConditionBase objects |
策略条件列表 |
authorizer_id |
否 |
String |
后端自定义认证对象的ID |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
authorizer_id |
否 |
String |
后端自定义认证对象的ID |
url_domain |
否 |
String |
后端服务的地址。 由主机(IP或域名)和端口号组成,总长度不超过255。格式为主机:端口(如:apig.example.com:7443)。如果不写端口,则HTTPS默认端口号为443,HTTP默认端口号为80。 支持环境变量,使用环境变量时,每个变量名的长度为3 ~ 32位的字符串,字符串由英文字母、数字、下划线、中划线组成,且只能以英文开头 |
req_protocol |
是 |
String |
请求协议 枚举值:
|
remark |
否 |
String |
描述。字符长度不超过255
说明:
中文字符必须为UTF-8或者unicode编码。 |
req_method |
是 |
String |
请求方式 枚举值:
|
version |
否 |
String |
web后端版本,字符长度不超过16 |
req_uri |
是 |
String |
请求地址。可以包含请求参数,用{}标识,比如/getUserInfo/{userId},支持 * / %- _ . 等特殊字符,总长度不超过512,且满足URI规范。 支持环境变量,使用环境变量时,每个变量名的长度为3 ~ 32位的字符串,字符串由英文字母、数字、中划线、下划线组成,且只能以英文开头。
说明:
需要服从URI规范。 |
timeout |
是 |
Integer |
API网关请求后端服务的超时时间。最大超时时间可通过实例特性backend_timeout配置修改,可修改的上限为600000。 单位:毫秒。 最小值:1 |
enable_client_ssl |
否 |
Boolean |
是否开启双向认证 |
retry_count |
否 |
String |
请求后端服务的重试次数,默认为-1,范围[-1,10]。 当该值为-1时,幂等的接口会重试1次,非幂等的不会重试。POST,PATCH方法为非幂等;GET,HEAD,PUT,OPTIONS和DELETE等方法为幂等的。 缺省值:-1 |
vpc_channel_info |
否 |
ApiBackendVpcReq object |
VPC通道详情。vpc_channel_status = 1,则这个object类型为必填信息 |
vpc_channel_status |
否 |
Integer |
是否使用VPC通道
枚举值:
|
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
url_domain |
否 |
String |
策略后端的Endpoint。 由域名(或IP地址)和端口号组成,总长度不超过255。格式为域名:端口(如:apig.example.com:7443)。如果不写端口,则HTTPS默认端口号为443, HTTP默认端口号为80。 支持环境变量,使用环境变量时,每个变量名的长度为3 ~ 32位的字符串,字符串由英文字母、数字、“_”、“-”组成,且只能以英文开头。 |
req_protocol |
是 |
String |
请求协议:HTTP、HTTPS 枚举值:
|
req_method |
是 |
String |
请求方式:GET、POST、PUT、DELETE、HEAD、PATCH、OPTIONS、ANY 枚举值:
|
req_uri |
是 |
String |
请求地址。可以包含请求参数,用{}标识,比如/getUserInfo/{userId},支持 * / %- _ . 等特殊字符,总长度不超过512,且满足URI规范。 支持环境变量,使用环境变量时,每个变量名的长度为3 ~ 32位的字符串,字符串由英文字母、数字、中划线、下划线组成,且只能以英文开头。
说明:
需要服从URI规范。 |
timeout |
否 |
Integer |
API网关请求后端服务的超时时间。最大超时时间可通过实例特性backend_timeout配置修改,可修改的上限为600000。 单位:毫秒。 最小值:1 |
retry_count |
否 |
String |
请求后端服务的重试次数,默认为-1,范围[-1,10]。 当该值为-1时,幂等的接口会重试1次,非幂等的不会重试。POST,PATCH方法为非幂等;GET,HEAD,PUT,OPTIONS和DELETE等方法为幂等的。 缺省值:-1 |
effect_mode |
是 |
String |
关联的策略组合模式:
枚举值:
|
name |
是 |
String |
策略后端名称。字符串由中文、英文字母、数字、下划线组成,且只能以中文或英文开头。 最小长度:3 最大长度:64 |
backend_params |
否 |
Array of BackendParamBase objects |
后端参数列表 |
conditions |
是 |
Array of ApiConditionBase objects |
策略条件列表 |
authorizer_id |
否 |
String |
后端自定义认证对象的ID |
vpc_channel_info |
否 |
ApiBackendVpcReq object |
VPC通道详情。vpc_channel_status = 1,则这个object类型为必填信息 |
vpc_channel_status |
否 |
Integer |
是否使用VPC通道
枚举值:
|
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
origin |
是 |
String |
参数类别:
枚举值:
|
name |
是 |
String |
参数名称。 字符串由英文字母、数字、中划线、下划线、英文句号组成,且只能以英文开头。 最小长度:1 最大长度:32 |
remark |
否 |
String |
描述。字符长度不超过255
说明:
中文字符必须为UTF-8或者unicode编码。 |
location |
是 |
String |
参数位置:PATH、QUERY、HEADER 枚举值:
|
value |
是 |
String |
参数值。字符长度不超过255 origin类别为REQUEST时,此字段值为req_params中的参数名称; origin类别为CONSTANT时,此字段值为参数真正的值; origin类别为SYSTEM时,此字段值为系统参数名称,系统参数分为网关内置参数、前端认证参数和后端认证参数,当api前端安全认证方式为自定义认证时,可以填写前端认证参数,当api开启后端认证时,可以填写后端认证参数。 网关内置参数取值及对应含义:
前端认证参数取值:以“$context.authorizer.frontend.”为前缀,如希望自定义认证校验通过返回的参数为aaa,那么此字段填写为$context.authorizer.frontend.aaa 后端认证参数取值:以“$context.authorizer.backend.”为前缀,如希望自定义认证校验通过返回的参数为aaa,那么此字段填写为$context.authorizer.backend.aaa |
响应参数
状态码: 201
参数 |
参数类型 |
描述 |
---|---|---|
name |
String |
API名称。 支持汉字、英文、数字、中划线、下划线、点、斜杠、中英文格式下的小括号和冒号、中文格式下的顿号,且只能以英文、汉字和数字开头,3-255个字符。
说明:
中文字符必须为UTF-8或者unicode编码。 |
type |
Integer |
API类型
枚举值:
|
version |
String |
API的版本 最大长度:16 |
req_protocol |
String |
API的请求协议
缺省值:HTTPS 枚举值:
|
req_method |
String |
API的请求方式 枚举值:
|
req_uri |
String |
请求地址。可以包含请求参数,用{}标识,比如/getUserInfo/{userId},支持 * / %- _ . 等特殊字符,总长度不超过512,且满足URI规范。
说明:
需要服从URI规范。 |
auth_type |
String |
API的认证方式
枚举值:
|
auth_opt |
AuthOpt object |
认证方式参数 |
cors |
Boolean |
是否支持跨域
缺省值:false 枚举值:
|
match_mode |
String |
API的匹配方式
枚举值:
|
backend_type |
String |
后端类型
枚举值:
|
remark |
String |
API描述。字符长度不超过255
说明:
中文字符必须为UTF-8或者unicode编码。 |
group_id |
String |
API所属的分组编号 |
body_remark |
String |
API请求体描述,可以是请求体示例、媒体类型、参数等信息。字符长度不超过20480
说明:
中文字符必须为UTF-8或者unicode编码。 |
result_normal_sample |
String |
正常响应示例,描述API的正常返回信息。字符长度不超过20480
说明:
中文字符必须为UTF-8或者unicode编码。 |
result_failure_sample |
String |
失败返回示例,描述API的异常返回信息。字符长度不超过20480
说明:
中文字符必须为UTF-8或者unicode编码。 |
authorizer_id |
String |
前端自定义认证对象的ID |
tags |
Array of strings |
标签。 支持英文,数字,中文,特殊符号(-*#%.:_),且只能以中文或英文开头。 默认支持10个标签,如需扩大配额请联系技术工程师修改API_TAG_NUM_LIMIT配置。 最小长度:1 最大长度:128 |
response_id |
String |
分组自定义响应ID |
roma_app_id |
String |
集成应用ID 暂不支持 |
domain_name |
String |
API绑定的自定义域名 暂不支持 |
tag |
String |
标签 待废弃,优先使用tags字段 |
content_type |
String |
请求内容格式类型: application/json application/xml multipart/form-data text/plain 暂不支持 枚举值:
|
id |
String |
API编号 |
status |
Integer |
API状态
|
arrange_necessary |
Integer |
是否需要编排 |
register_time |
String |
API注册时间 |
update_time |
String |
API修改时间 |
group_name |
String |
API所属分组的名称 |
group_version |
String |
API所属分组的版本 默认V1,其他版本暂不支持 缺省值:V1 |
run_env_id |
String |
发布的环境编号 存在多个发布记录时,环境编号之间用|隔开 |
run_env_name |
String |
发布的环境名称 存在多个发布记录时,环境名称之间用|隔开 |
publish_id |
String |
发布记录编号 存在多个发布记录时,发布记录编号之间用|隔开 |
publish_time |
String |
发布时间 存在多个发布记录时,发布时间之间用|隔开 |
roma_app_name |
String |
API归属的集成应用名称 暂不支持 |
ld_api_id |
String |
当API的后端为自定义后端时,对应的自定义后端API编号 暂不支持 |
backend_api |
BackendApi object |
web后端详情 |
api_group_info |
ApiGroupCommonInfo object |
api分组信息 |
func_info |
ApiFunc object |
函数工作流后端详情 |
mock_info |
ApiMock object |
mock后端详情 |
req_params |
Array of ReqParam objects |
API的请求参数列表 |
backend_params |
Array of BackendParam objects |
API的后端参数列表 |
policy_functions |
Array of ApiPolicyFunctionResp objects |
函数工作流策略后端列表 |
policy_mocks |
Array of ApiPolicyMockResp objects |
mock策略后端列表 |
policy_https |
Array of ApiPolicyHttpResp objects |
web策略后端列表 |
参数 |
参数类型 |
描述 |
---|---|---|
app_code_auth_type |
String |
AppCode简易认证类型,仅在auth_type为APP时生效,默认为DISABLE:
缺省值:DISABLE 枚举值:
|
参数 |
参数类型 |
描述 |
---|---|---|
authorizer_id |
String |
后端自定义认证对象的ID |
url_domain |
String |
后端服务的地址。 由主机(IP或域名)和端口号组成,总长度不超过255。格式为主机:端口(如:apig.example.com:7443)。如果不写端口,则HTTPS默认端口号为443,HTTP默认端口号为80。 支持环境变量,使用环境变量时,每个变量名的长度为3 ~ 32位的字符串,字符串由英文字母、数字、下划线、中划线组成,且只能以英文开头 |
req_protocol |
String |
请求协议 枚举值:
|
remark |
String |
描述。字符长度不超过255
说明:
中文字符必须为UTF-8或者unicode编码。 |
req_method |
String |
请求方式 枚举值:
|
version |
String |
web后端版本,字符长度不超过16 |
req_uri |
String |
请求地址。可以包含请求参数,用{}标识,比如/getUserInfo/{userId},支持 * / %- _ . 等特殊字符,总长度不超过512,且满足URI规范。 支持环境变量,使用环境变量时,每个变量名的长度为3 ~ 32位的字符串,字符串由英文字母、数字、中划线、下划线组成,且只能以英文开头。
说明:
需要服从URI规范。 |
timeout |
Integer |
API网关请求后端服务的超时时间。最大超时时间可通过实例特性backend_timeout配置修改,可修改的上限为600000。 单位:毫秒。 最小值:1 |
enable_client_ssl |
Boolean |
是否开启双向认证 |
retry_count |
String |
请求后端服务的重试次数,默认为-1,范围[-1,10]。 当该值为-1时,幂等的接口会重试1次,非幂等的不会重试。POST,PATCH方法为非幂等;GET,HEAD,PUT,OPTIONS和DELETE等方法为幂等的。 缺省值:-1 |
id |
String |
编号 |
status |
Integer |
后端状态
|
register_time |
String |
注册时间 |
update_time |
String |
修改时间 |
vpc_channel_info |
VpcInfo object |
VPC通道详情。如果vpc_channel_status = 1,则这个object类型为必填信息 |
vpc_channel_status |
Integer |
是否使用VPC通道
|
参数 |
参数类型 |
描述 |
---|---|---|
id |
String |
编号 |
name |
String |
API分组名称 |
status |
Integer |
状态
枚举值:
|
sl_domain |
String |
系统默认分配的子域名 |
register_time |
String |
创建时间 |
update_time |
String |
最近修改时间 |
on_sell_status |
Integer |
是否已上架云商店:
暂不支持 |
url_domains |
Array of UrlDomain objects |
分组上绑定的独立域名列表 |
参数 |
参数类型 |
描述 |
---|---|---|
id |
String |
域名编号 |
domain |
String |
访问域名 |
cname_status |
Integer |
域名cname状态:
|
ssl_id |
String |
SSL证书编号 |
ssl_name |
String |
SSL证书名称 |
min_ssl_version |
String |
最小ssl协议版本号。支持TLSv1.1或TLSv1.2 缺省值:TLSv1.1 枚举值:
|
verified_client_certificate_enabled |
Boolean |
是否开启客户端证书校验。只有绑定证书时,该参数才生效。当绑定证书存在trusted_root_ca时,默认开启;当绑定证书不存在trusted_root_ca时,默认关闭。 缺省值:false |
is_has_trusted_root_ca |
Boolean |
是否存在信任的根证书CA。当绑定证书存在trusted_root_ca时为true。 缺省值:false |
参数 |
参数类型 |
描述 |
---|---|---|
function_urn |
String |
函数URN |
remark |
String |
描述信息。长度不超过255个字符
说明:
中文字符必须为UTF-8或者unicode编码。 |
invocation_type |
String |
调用类型
枚举值:
|
network_type |
String |
对接函数的网络架构类型
枚举值:
|
version |
String |
函数版本 当函数别名URN和函数版本同时传入时,函数版本将被忽略,只会使用函数别名URN 最大长度:64 |
alias_urn |
String |
函数别名URN 当函数别名URN和函数版本同时传入时,函数版本将被忽略,只会使用函数别名URN |
timeout |
Integer |
API网关请求后端服务的超时时间。最大超时时间可通过实例特性backend_timeout配置修改,可修改的上限为600000。 单位:毫秒。 最小值:1 |
authorizer_id |
String |
后端自定义认证ID |
id |
String |
编号 |
register_time |
String |
注册时间 |
status |
Integer |
后端状态
|
update_time |
String |
修改时间 |
参数 |
参数类型 |
描述 |
---|---|---|
remark |
String |
描述信息。长度不超过255个字符
说明:
中文字符必须为UTF-8或者unicode编码。 |
result_content |
String |
返回结果 |
version |
String |
版本。字符长度不超过64 |
authorizer_id |
String |
后端自定义认证ID |
id |
String |
编号 |
register_time |
String |
注册时间 |
status |
Integer |
后端状态
|
update_time |
String |
修改时间 |
参数 |
参数类型 |
描述 |
---|---|---|
name |
String |
参数名称。 长度为1 ~ 32位的字符串,字符串由英文字母、数字、中划线、下划线、英文句号组成,且只能以英文开头。 |
type |
String |
参数类型 枚举值:
|
location |
String |
参数位置 枚举值:
|
default_value |
String |
参数默认值 |
sample_value |
String |
参数示例值 |
required |
Integer |
是否必须
location为PATH时,required默认为1,其他场景required默认为2 枚举值:
|
valid_enable |
Integer |
是否开启校验
缺省值:2 枚举值:
|
remark |
String |
描述信息。长度不超过255个字符
说明:
中文字符必须为UTF-8或者unicode编码。 |
enumerations |
String |
参数枚举值 |
min_num |
Integer |
参数最小值 参数类型为NUMBER时有效 |
max_num |
Integer |
参数最大值 参数类型为NUMBER时有效 |
min_size |
Integer |
参数最小长度 参数类型为STRING时有效 |
max_size |
Integer |
参数最大长度 参数类型为STRING时有效 |
regular |
String |
正则校验规则 暂不支持 |
json_schema |
String |
JSON校验规则 暂不支持 |
pass_through |
Integer |
是否透传
枚举值:
|
id |
String |
参数编号 |
参数 |
参数类型 |
描述 |
---|---|---|
function_urn |
String |
函数URN |
invocation_type |
String |
调用类型
枚举值:
|
network_type |
String |
对接函数的网络架构类型
枚举值:
|
version |
String |
函数版本 当函数别名URN和函数版本同时传入时,函数版本将被忽略,只会使用函数别名URN 最大长度:64 |
alias_urn |
String |
函数别名URN 当函数别名URN和函数版本同时传入时,函数版本将被忽略,只会使用函数别名URN |
timeout |
Integer |
API网关请求后端服务的超时时间。最大超时时间可通过实例特性backend_timeout配置修改,可修改的上限为600000。 单位:毫秒。 最小值:1 |
id |
String |
编号 |
effect_mode |
String |
关联的策略组合模式:
枚举值:
|
name |
String |
策略后端名称。字符串由中文、英文字母、数字、下划线组成,且只能以中文或英文开头。 最小长度:3 最大长度:64 |
backend_params |
Array of BackendParam objects |
后端参数列表 |
conditions |
Array of CoditionResp objects |
策略条件列表 |
authorizer_id |
String |
后端自定义认证对象的ID |
参数 |
参数类型 |
描述 |
---|---|---|
id |
String |
编号 |
effect_mode |
String |
关联的策略组合模式:
枚举值:
|
name |
String |
策略后端名称。字符串由中文、英文字母、数字、下划线组成,且只能以中文或英文开头。 最小长度:3 最大长度:64 |
backend_params |
Array of BackendParam objects |
后端参数列表 |
conditions |
Array of CoditionResp objects |
策略条件列表 |
authorizer_id |
String |
后端自定义认证对象的ID |
result_content |
String |
返回结果 |
参数 |
参数类型 |
描述 |
---|---|---|
id |
String |
编号 |
effect_mode |
String |
关联的策略组合模式:
枚举值:
|
name |
String |
策略后端名称。字符串由中文、英文字母、数字、下划线组成,且只能以中文或英文开头。 最小长度:3 最大长度:64 |
backend_params |
Array of BackendParam objects |
后端参数列表 |
conditions |
Array of CoditionResp objects |
策略条件列表 |
authorizer_id |
String |
后端自定义认证对象的ID |
url_domain |
String |
策略后端的Endpoint。 由域名(或IP地址)和端口号组成,总长度不超过255。格式为域名:端口(如:apig.example.com:7443)。如果不写端口,则HTTPS默认端口号为443, HTTP默认端口号为80。 支持环境变量,使用环境变量时,每个变量名的长度为3 ~ 32位的字符串,字符串由英文字母、数字、“_”、“-”组成,且只能以英文开头。 |
req_protocol |
String |
请求协议:HTTP、HTTPS 枚举值:
|
req_method |
String |
请求方式:GET、POST、PUT、DELETE、HEAD、PATCH、OPTIONS、ANY 枚举值:
|
req_uri |
String |
请求地址。可以包含请求参数,用{}标识,比如/getUserInfo/{userId},支持 * / %- _ . 等特殊字符,总长度不超过512,且满足URI规范。 支持环境变量,使用环境变量时,每个变量名的长度为3 ~ 32位的字符串,字符串由英文字母、数字、中划线、下划线组成,且只能以英文开头。
说明:
需要服从URI规范。 |
timeout |
Integer |
API网关请求后端服务的超时时间。最大超时时间可通过实例特性backend_timeout配置修改,可修改的上限为600000。 单位:毫秒。 最小值:1 |
retry_count |
String |
请求后端服务的重试次数,默认为-1,范围[-1,10]。 当该值为-1时,幂等的接口会重试1次,非幂等的不会重试。POST,PATCH方法为非幂等;GET,HEAD,PUT,OPTIONS和DELETE等方法为幂等的。 缺省值:-1 |
vpc_channel_info |
VpcInfo object |
VPC通道详情。如果vpc_channel_status = 1,则这个object类型为必填信息 |
vpc_channel_status |
Integer |
是否使用VPC通道:
|
参数 |
参数类型 |
描述 |
---|---|---|
origin |
String |
参数类别:
枚举值:
|
name |
String |
参数名称。 字符串由英文字母、数字、中划线、下划线、英文句号组成,且只能以英文开头。 最小长度:1 最大长度:32 |
remark |
String |
描述。字符长度不超过255
说明:
中文字符必须为UTF-8或者unicode编码。 |
location |
String |
参数位置:PATH、QUERY、HEADER 枚举值:
|
value |
String |
参数值。字符长度不超过255 origin类别为REQUEST时,此字段值为req_params中的参数名称; origin类别为CONSTANT时,此字段值为参数真正的值; origin类别为SYSTEM时,此字段值为系统参数名称,系统参数分为网关内置参数、前端认证参数和后端认证参数,当api前端安全认证方式为自定义认证时,可以填写前端认证参数,当api开启后端认证时,可以填写后端认证参数。 网关内置参数取值及对应含义:
前端认证参数取值:以“$context.authorizer.frontend.”为前缀,如希望自定义认证校验通过返回的参数为aaa,那么此字段填写为$context.authorizer.frontend.aaa 后端认证参数取值:以“$context.authorizer.backend.”为前缀,如希望自定义认证校验通过返回的参数为aaa,那么此字段填写为$context.authorizer.backend.aaa |
id |
String |
参数编号 |
req_param_id |
String |
对应的请求参数编号 |
参数 |
参数类型 |
描述 |
---|---|---|
req_param_name |
String |
关联的请求参数对象名称。策略类型为param时必选 |
condition_type |
String |
策略条件
策略类型为param时必选 枚举值:
|
condition_origin |
String |
策略类型
枚举值:
|
condition_value |
String |
策略值 |
id |
String |
编号 |
req_param_id |
String |
关联的请求参数对象编号 |
req_param_location |
String |
关联的请求参数对象位置 |
参数 |
参数类型 |
描述 |
---|---|---|
ecs_id |
String |
云服务器ID |
ecs_name |
String |
云服务器名称 |
cascade_flag |
Boolean |
是否使用级联方式 暂不支持 |
vpc_channel_proxy_host |
String |
代理主机 |
vpc_channel_id |
String |
VPC通道编号 |
vpc_channel_port |
Integer |
VPC通道端口 |
状态码: 400
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
错误码 |
error_msg |
String |
错误描述 |
状态码: 401
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
错误码 |
error_msg |
String |
错误描述 |
状态码: 403
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
错误码 |
error_msg |
String |
错误描述 |
状态码: 404
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
错误码 |
error_msg |
String |
错误描述 |
状态码: 500
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
错误码 |
error_msg |
String |
错误描述 |
请求示例
- 创建Web后端API
{ "group_id" : "c77f5e81d9cb4424bf704ef2b0ac7600", "match_mode" : "NORMAL", "name" : "Api_http", "auth_type" : "AUTHORIZER", "authorizer_id" : "0d982c1ac3da493dae47627b6439fc5c", "backend_type" : "HTTP", "backend_api" : { "url_domain" : "192.168.189.156:12346", "req_protocol" : "HTTP", "req_method" : "GET", "req_uri" : "/test/benchmark", "timeout" : 5000, "retry_count" : "-1" }, "req_protocol" : "HTTPS", "req_uri" : "/test/http", "remark" : "Web backend API", "type" : 1, "req_method" : "GET", "result_normal_sample" : "Example success response", "result_failure_sample" : "Example failure response", "tags" : [ "webApi" ], "req_params" : [ { "name" : "query_demo", "location" : "QUERY", "type" : "STRING", "required" : 1 }, { "name" : "header-demo", "location" : "HEADER", "type" : "STRING", "required" : 2 } ], "backend_params" : [ { "name" : "backHeader", "value" : "header-demo", "location" : "HEADER", "origin" : "REQUEST" }, { "name" : "backQuery", "value" : "query_demo", "location" : "QUERY", "origin" : "REQUEST" }, { "name" : "X-CONSTANT-HEADER", "value" : "demo", "location" : "HEADER", "origin" : "CONSTANT", "remark" : "constant_demo" }, { "name" : "app-id", "value" : "$context.appId", "location" : "HEADER", "origin" : "SYSTEM", "remark" : "App ID of the API caller" } ] }
- 创建函数工作流后端API
{ "group_id" : "c77f5e81d9cb4424bf704ef2b0ac7600", "match_mode" : "NORMAL", "name" : "Api_function", "auth_type" : "APP", "backend_type" : "FUNCTION", "func_info" : { "authorizer_id" : "5b8cd3f06f004115aec69c58f57272c9", "function_urn" : "'urn:fss:xx-xxx-7:73d69ae0cfcf460190522d06b60f05ad:function:default:auto_testfunc93749'", "invocation_type" : "sync", "network_type" : "V1", "timeout" : 5000, "version" : "latest", "alias_urn" : "urn:fss:region01:73d69ae0cfcf460190522d06b60f05ad:function:default:auto_testfunc93749:!a1" }, "req_protocol" : "HTTPS", "req_uri" : "/test/function", "remark" : "FunctionGraph backend API", "type" : 1, "req_method" : "GET", "result_normal_sample" : "Example success response", "result_failure_sample" : "Example failure response", "tags" : [ "functionApi" ] }
- 创建模拟后端API
{ "group_id" : "c77f5e81d9cb4424bf704ef2b0ac7600", "match_mode" : "SWA", "name" : "Api_mock", "auth_type" : "IAM", "backend_type" : "MOCK", "mock_info" : { "result_content" : "mock success" }, "policy_mocks" : [ { "name" : "Mock policy backend", "effect_mode" : "ANY", "result_content" : "mock policy success", "conditions" : [ { "condition_origin" : "source", "condition_value" : "1.0.1.0" } ] } ], "req_protocol" : "HTTPS", "req_uri" : "/test/mock", "remark" : "Mock backend API", "type" : 1, "req_method" : "GET", "result_normal_sample" : "Example success response", "result_failure_sample" : "Example failure response", "tags" : [ "mockApi" ] }
响应示例
状态码: 201
Created
- 示例 1
{ "id" : "5f918d104dc84480a75166ba99efff21", "tags" : [ "webApi" ], "arrange_necessary" : 2, "backend_type" : "HTTP", "auth_type" : "AUTHORIZER", "auth_opt" : { "app_code_auth_type" : "DISABLE" }, "authorizer_id" : "0d982c1ac3da493dae47627b6439fc5c", "backend_api" : { "update_time" : "2020-07-31T12:42:51.325312994Z", "vpc_channel_status" : 2, "url_domain" : "xxx.xxx.xxx.xxx:12346", "req_protocol" : "HTTP", "id" : "1ce8fda3586d4371bd83c955df37e102", "req_method" : "GET", "register_time" : "2020-07-31T12:42:51.325312721Z", "req_uri" : "/benchmark", "timeout" : 5000, "status" : 1, "retry_count" : "-1" }, "cors" : false, "status" : 1, "group_name" : "api_group_001", "group_id" : "c77f5e81d9cb4424bf704ef2b0ac7600", "group_version" : "V1", "response_id" : "981e6c8f847f47199a9faf4409b751a5", "match_mode" : "NORMAL", "name" : "Api_http", "req_protocol" : "HTTPS", "req_method" : "GET", "req_uri" : "/test/http", "type" : 1, "result_normal_sample" : "Example success response", "result_failure_sample" : "Example failure response", "version" : "V0.0.1", "register_time" : "2020-07-31T12:42:51.314357035Z", "update_time" : "2020-07-31T12:42:51.314357324Z", "remark" : "Web backend API", "req_params" : [ { "name" : "query_demo", "location" : "QUERY", "type" : "STRING", "valid_enable" : 2, "required" : 1, "id" : "57c8bf3c97ef40ee94eace95dff30014", "pass_through" : 1 }, { "name" : "header-demo", "location" : "HEADER", "type" : "STRING", "valid_enable" : 2, "required" : 2, "id" : "8d993be96980415faa6b1fb2ebd647e0", "pass_through" : 1 } ], "backend_params" : [ { "name" : "backHeader", "value" : "header-demo", "location" : "HEADER", "origin" : "REQUEST", "id" : "709f0ea376b44aaf907aaaa37d8cce92", "req_param_id" : "8d993be96980415faa6b1fb2ebd647e0" }, { "name" : "backQuery", "value" : "query_demo", "location" : "QUERY", "origin" : "REQUEST", "id" : "2f152d0fb54445039158d29c2a4f69ee", "req_param_id" : "57c8bf3c97ef40ee94eace95dff30014" }, { "name" : "X-CONSTANT-HEADER", "value" : "demo", "location" : "HEADER", "origin" : "CONSTANT", "remark" : "constant_demo", "id" : "20142102c6aa4f3c97d5fd6ef4010ac2" }, { "name" : "app-id", "value" : "$context.appId", "location" : "HEADER", "origin" : "SYSTEM", "remark" : "App ID of the API caller", "id" : "a1349c61016e4d999ca783a50bfeee2b" } ] }
- 示例 2
{ "id" : "abd9c4b2ff974888b0ba79be7e6b2763", "arrange_necessary" : 2, "group_id" : "c77f5e81d9cb4424bf704ef2b0ac7600", "group_name" : "api_group_001", "group_version" : "V1", "match_mode" : "NORMAL", "name" : "Api_function", "auth_type" : "APP", "auth_opt" : { "auth_code_auth_type" : "DISABLE" }, "backend_type" : "FUNCTION", "func_info" : { "id" : "c0740524cd4c40e3801a7afe5375f8b0", "authorizer_id" : "5b8cd3f06f004115aec69c58f57272c9", "function_urn" : "'urn:fss:xx-xxx-7:73d69ae0cfcf460190522d06b60f05ad:function:default:auto_testfunc93749'", "invocation_type" : "sync", "network_type" : "V1", "timeout" : 5000, "version" : "latest", "alias_urn" : "urn:fss:region01:73d69ae0cfcf460190522d06b60f05ad:function:default:auto_testfunc00000:!a1", "register_time" : "2020-08-02T15:36:19.897262803Z", "update_time" : "2020-08-02T15:36:19.897262993Z", "status" : 1 }, "cors" : false, "req_protocol" : "HTTPS", "req_uri" : "/test/function", "remark" : "FunctionGraph backend API", "type" : 1, "version" : "V0.0.1", "status" : 1, "req_method" : "GET", "result_normal_sample" : "Example success response", "result_failure_sample" : "Example failure response", "tags" : [ "functionApi" ], "register_time" : "2020-08-02T15:36:19.892012381Z", "update_time" : "2020-08-02T15:36:19.892012627Z" }
- 示例 3
{ "id" : "3a955b791bd24b1c9cd94c745f8d1aad", "arrange_necessary" : 2, "group_id" : "c77f5e81d9cb4424bf704ef2b0ac7600", "group_name" : "api_group_001", "group_version" : "V1", "match_mode" : "SWA", "name" : "Api_mock", "auth_type" : "IAM", "auth_opt" : { "auth_code_auth_type" : "DISABLE" }, "backend_type" : "MOCK", "mock_info" : { "id" : "e74bbc75825c4c38ae84ccab6bdc6175", "result_content" : "mock success", "update_time" : "2020-08-02T15:56:52.301790686Z", "register_time" : "2020-08-02T15:56:52.301790367Z" }, "policy_mocks" : [ { "name" : "Mock policy backend", "id" : "1cb05173a4c84b7d996e30145cce3c7d", "effect_mode" : "ANY", "result_content" : "mock policy success", "conditions" : [ { "condition_origin" : "source", "condition_value" : "1.0.1.0", "id" : "8650b3a94e7344df8251658d8aee1f6d" } ] } ], "cors" : false, "req_protocol" : "HTTPS", "req_uri" : "/test/mock", "remark" : "Mock backend API", "type" : 1, "version" : "V0.0.1", "req_method" : "GET", "result_normal_sample" : "Example success response", "result_failure_sample" : "Example failure response", "tags" : [ "mockApi" ], "register_time" : "2020-08-02T15:56:52.286099413Z", "update_time" : "2020-08-02T15:56:52.286099715Z", "status" : 1 }
状态码: 400
Bad Request
{ "error_code" : "APIG.2011", "error_msg" : "Invalid parameter value,parameterName:name. 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.3019", "error_msg" : "The function URN does not exist" }
状态码: 500
Internal Server Error
{ "error_code" : "APIG.9999", "error_msg" : "System error" }
状态码
状态码 |
描述 |
---|---|
201 |
Created |
400 |
Bad Request |
401 |
Unauthorized |
403 |
Forbidden |
404 |
Not Found |
500 |
Internal Server Error |
错误码
请参见错误码。