API网关 APIGAPI网关 APIG

更新时间:2021/06/18 GMT+08:00
分享

修改API

功能介绍

修改指定API的信息,包括后端服务信息。

调试

您可以在API Explorer中调试该接口。

URI

PUT /v2/{project_id}/apigw/instances/{instance_id}/apis/{api_id}

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

租户项目编号

instance_id

String

实例编号

api_id

String

API的编号,可通过查询API信息获取该编号。

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

用户Token。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。

表3 请求Body参数

参数

是否必选

参数类型

描述

name

String

API名称。

长度为3 ~ 64位的字符串,字符串由中文、英文字母、数字、下划线组成,且只能以英文或中文开头。

说明:

中文字符必须为UTF-8或者unicode编码。

type

Integer

API类型

  • 1:公有API

  • 2:私有API

枚举值:

  • 1

  • 2

version

String

API的版本

最大长度:16

req_protocol

String

API的请求协议

  • HTTP

  • HTTPS

  • BOTH:同时支持HTTP和HTTPS

缺省值:HTTPS

枚举值:

  • HTTP

  • HTTPS

  • BOTH

req_method

String

API的请求方式

枚举值:

  • GET

  • POST

  • PUT

  • DELETE

  • HEAD

  • PATCH

  • OPTIONS

  • ANY

req_uri

String

请求地址。可以包含请求参数,用{}标识,比如/getUserInfo/{userId},支持 * % - _ . 等特殊字符,总长度不超过512,且满足URI规范。

说明:

需要服从URI规范。

auth_type

String

API的认证方式

  • NONE:无认证

  • APP:APP认证

  • IAM:IAM认证

  • AUTHORIZER:自定义认证

枚举值:

  • NONE

  • APP

  • IAM

  • AUTHORIZER

auth_opt

AuthOpt object

认证方式参数

cors

Boolean

是否支持跨域

  • TRUE:支持

  • FALSE:不支持

缺省值:false

枚举值:

  • true

  • false

match_mode

String

API的匹配方式

  • SWA:前缀匹配

  • NORMAL:正常匹配(绝对匹配) 默认:NORMAL

枚举值:

  • SWA

  • NORMAL

backend_type

String

后端类型

  • HTTP:web后端

  • FUNCTION:函数工作流

  • MOCK:模拟的后端

枚举值:

  • HTTP

  • FUNCTION

  • MOCK

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

标签。

支持英文,数字,下划线,且只能以英文开头。支持输入多个标签,不同标签以英文逗号分割。

最小长度:1

最大长度:128

response_id

String

分组自定义响应ID

roma_app_id

String

集成应用ID

暂不支持

domain_name

String

API绑定的自定义域名

暂不支持

tag

String

标签

待废弃,优先使用tags字段

mock_info

ApiMockCreate object

mock后端详情

func_info

ApiFuncCreate object

函数后端详情

req_params

Array of ReqParamBase objects

API的请求参数列表

backend_params

Array of BackendParamBase objects

API的后端参数列表

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策略后端列表

表4 AuthOpt

参数

是否必选

参数类型

描述

app_code_auth_type

String

AppCode简易认证类型,仅在auth_type为APP时生效,默认为DISABLE:

  • DISABLE:不开启简易认证

  • HEADER:开启简易认证且AppCode位置在HEADER

缺省值:DISABLE

枚举值:

  • DISABLE

  • HEADER

表5 ApiMockCreate

参数

是否必选

参数类型

描述

remark

String

描述信息。长度不超过255个字符

说明:

中文字符必须为UTF-8或者unicode编码。

result_content

String

返回结果

version

String

版本。字符长度不超过64

authorizer_id

String

后端自定义认证ID

表6 ApiFuncCreate

参数

是否必选

参数类型

描述

function_urn

String

函数URN

remark

String

描述信息。长度不超过255个字符

说明:

中文字符必须为UTF-8或者unicode编码。

invocation_type

String

调用类型

  • async: 异步

  • sync:同步

枚举值:

  • async

  • sync

version

String

版本。

最大长度:64

timeout

Integer

API网关请求后端服务的超时时间。最大超时时间可通过实例特性backend_timeout配置修改,可修改的上限为600000。

单位:毫秒。

最小值:1

authorizer_id

String

后端自定义认证ID

表7 ReqParamBase

参数

是否必选

参数类型

描述

name

String

参数名称。 长度为1 ~ 32位的字符串,字符串由英文字母、数字、中划线、下划线、英文句号组成,且只能以英文开头。

type

String

参数类型

枚举值:

  • STRING

  • NUMBER

location

String

参数位置

枚举值:

  • PATH

  • QUERY

  • HEADER

default_value

String

参数默认值

sample_value

String

参数示例值

required

Integer

是否必须

  • 1:是

  • 2:否

location为PATH时,required默认为1,其他场景required默认为2

枚举值:

  • 1

  • 2

valid_enable

Integer

是否开启校验

  • 1:开启校验

  • 2:不开启校验

缺省值:2

枚举值:

  • 1

  • 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

String

是否透传

  • 1:是

  • 2:否

枚举值:

  • 1

  • 2

表8 ApiPolicyMockCreate

参数

是否必选

参数类型

描述

result_content

String

返回结果

effect_mode

String

关联的策略组合模式:

  • ALL:满足全部条件

  • ANY:满足任一条件

枚举值:

  • ALL

  • ANY

name

String

策略后端名称。字符串由中文、英文字母、数字、下划线组成,且只能以中文或英文开头。

最小长度:3

最大长度:64

backend_params

Array of BackendParamBase objects

后端参数列表

conditions

Array of ApiConditionBase objects

策略条件列表

authorizer_id

String

后端自定义认证对象的ID

表9 ApiPolicyFunctionCreate

参数

是否必选

参数类型

描述

function_urn

String

函数URN

invocation_type

String

调用类型

  • async: 异步

  • sync:同步

枚举值:

  • async

  • sync

version

String

版本。字符长度不超过64

timeout

Integer

API网关请求后端服务的超时时间。最大超时时间可通过实例特性backend_timeout配置修改,可修改的上限为600000。

单位:毫秒。

最小值:1

effect_mode

String

关联的策略组合模式:

  • ALL:满足全部条件

  • ANY:满足任一条件

枚举值:

  • ALL

  • ANY

name

String

策略后端名称。字符串由中文、英文字母、数字、下划线组成,且只能以中文或英文开头。

最小长度:3

最大长度:64

backend_params

Array of BackendParamBase objects

后端参数列表

conditions

Array of ApiConditionBase objects

策略条件列表

authorizer_id

String

后端自定义认证对象的ID

表10 BackendApiCreate

参数

是否必选

参数类型

描述

authorizer_id

String

后端自定义认证对象的ID

url_domain

String

后端服务的地址。

由主机(IP或域名)和端口号组成,总长度不超过255。格式为主机:端口(如:apig.example.com:7443)。如果不写端口,则HTTPS默认端口号为443,HTTP默认端口号为80。

支持环境变量,使用环境变量时,每个变量名的长度为3 ~ 32位的字符串,字符串由英文字母、数字、下划线、中划线组成,且只能以英文开头

req_protocol

String

请求协议

枚举值:

  • HTTP

  • HTTPS

remark

String

描述。字符长度不超过255

说明:

中文字符必须为UTF-8或者unicode编码。

req_method

String

请求方式

枚举值:

  • GET

  • POST

  • PUT

  • DELETE

  • HEAD

  • PATCH

  • OPTIONS

  • ANY

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

是否开启双向认证

vpc_channel_info

ApiBackendVpcReq object

VPC通道详情。vpc_channel_status = 1,则这个object类型为必填信息

vpc_channel_status

Integer

是否使用VPC通道

  • 1:使用VPC通道

  • 2:不使用VPC通道

枚举值:

  • 1

  • 2

表11 ApiBackendVpcReq

参数

是否必选

参数类型

描述

vpc_channel_proxy_host

String

代理主机

vpc_channel_id

String

VPC通道编号

表12 ApiPolicyHttpCreate

参数

是否必选

参数类型

描述

url_domain

String

策略后端的Endpoint。 由域名(或IP地址)和端口号组成,总长度不超过255。格式为域名:端口(如:apig.example.com:7443)。如果不写端口,则HTTPS默认端口号为443, HTTP默认端口号为80。 支持环境变量,使用环境变量时,每个变量名的长度为3 ~ 32位的字符串,字符串由英文字母、数字、“_”、“-”组成,且只能以英文开头。

req_protocol

String

请求协议:HTTP、HTTPS

枚举值:

  • HTTP

  • HTTPS

req_method

String

请求方式:GET、POST、PUT、DELETE、HEAD、PATCH、OPTIONS、ANY

枚举值:

  • 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

effect_mode

String

关联的策略组合模式:

  • ALL:满足全部条件

  • ANY:满足任一条件

枚举值:

  • ALL

  • ANY

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通道

  • 1 : 使用VPC通道

  • 2 : 不使用VPC通道

枚举值:

  • 1

  • 2

表13 BackendParamBase

参数

是否必选

参数类型

描述

origin

String

参数类别:

  • 后端服务参数:REQUEST

  • 常量参数:CONSTANT

  • 系统参数:SYSTEM

枚举值:

  • REQUEST

  • CONSTANT

  • SYSTEM

name

String

参数名称。 字符串由英文字母、数字、中划线、下划线、英文句号组成,且只能以英文开头。

最小长度:1

最大长度:32

remark

String

描述。字符长度不超过255

说明:

中文字符必须为UTF-8或者unicode编码。

location

String

参数位置:PATH、QUERY、HEADER

枚举值:

  • PATH

  • QUERY

  • HEADER

value

String

参数值。字符长度不超过255 origin类别为REQUEST时,此字段值为req_params中的参数名称;

origin类别为CONSTANT时,此字段值为参数真正的值;

origin类别为SYSTEM时,此字段值为系统参数名称,系统参数分为网关内置参数、前端认证参数和后端认证参数,当api前端安全认证方式为自定义认证时,可以填写前端认证参数,当api开启后端认证时,可以填写后端认证参数。

网关内置参数取值及对应含义:

  • $context.sourceIp:API调用者的源地址

  • $context.stage:API调用的部署环境

  • $context.apiId:API的ID

  • $context.appId:API调用者的APP对象ID

  • $context.requestId:当次API调用生成跟踪ID

  • $context.serverAddr:网关的服务器地址

  • $context.serverName:网关的服务器名称

  • $context.handleTime:本次API调用的处理时间

  • $context.providerAppId:API拥有者的应用对象ID,暂不支持使用

前端认证参数取值:以“$context.authorizer.frontend.”为前缀,如希望自定义认证校验通过返回的参数为aaa,那么此字段填写为$context.authorizer.frontend.aaa

后端认证参数取值:以“$context.authorizer.backend.”为前缀,如希望自定义认证校验通过返回的参数为aaa,那么此字段填写为$context.authorizer.backend.aaa

表14 ApiConditionBase

参数

是否必选

参数类型

描述

req_param_name

String

关联的请求参数对象名称。策略类型为param时必选

condition_type

String

策略条件

  • exact:绝对匹配

  • enum:枚举

  • pattern:正则

策略类型为param时必选

枚举值:

  • exact

  • enum

  • pattern

condition_origin

String

策略类型

  • param:参数

  • source:源IP

枚举值:

  • param

  • source

condition_value

String

策略值

响应参数

状态码: 200

表15 响应Body参数

参数

参数类型

描述

name

String

API名称。

长度为3 ~ 64位的字符串,字符串由中文、英文字母、数字、下划线组成,且只能以英文或中文开头。

说明:

中文字符必须为UTF-8或者unicode编码。

type

Integer

API类型

  • 1:公有API

  • 2:私有API

枚举值:

  • 1

  • 2

version

String

API的版本

最大长度:16

req_protocol

String

API的请求协议

  • HTTP

  • HTTPS

  • BOTH:同时支持HTTP和HTTPS

缺省值:HTTPS

枚举值:

  • HTTP

  • HTTPS

  • BOTH

req_method

String

API的请求方式

枚举值:

  • GET

  • POST

  • PUT

  • DELETE

  • HEAD

  • PATCH

  • OPTIONS

  • ANY

req_uri

String

请求地址。可以包含请求参数,用{}标识,比如/getUserInfo/{userId},支持 * % - _ . 等特殊字符,总长度不超过512,且满足URI规范。

说明:

需要服从URI规范。

auth_type

String

API的认证方式

  • NONE:无认证

  • APP:APP认证

  • IAM:IAM认证

  • AUTHORIZER:自定义认证

枚举值:

  • NONE

  • APP

  • IAM

  • AUTHORIZER

auth_opt

AuthOpt object

认证方式参数

cors

Boolean

是否支持跨域

  • TRUE:支持

  • FALSE:不支持

缺省值:false

枚举值:

  • true

  • false

match_mode

String

API的匹配方式

  • SWA:前缀匹配

  • NORMAL:正常匹配(绝对匹配) 默认:NORMAL

枚举值:

  • SWA

  • NORMAL

backend_type

String

后端类型

  • HTTP:web后端

  • FUNCTION:函数工作流

  • MOCK:模拟的后端

枚举值:

  • HTTP

  • FUNCTION

  • MOCK

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

标签。

支持英文,数字,下划线,且只能以英文开头。支持输入多个标签,不同标签以英文逗号分割。

最小长度:1

最大长度:128

response_id

String

分组自定义响应ID

roma_app_id

String

集成应用ID

暂不支持

domain_name

String

API绑定的自定义域名

暂不支持

tag

String

标签

待废弃,优先使用tags字段

id

String

API编号

status

Integer

API状态

  • 1: 有效

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

发布记录编号

存在多个发布记录时,发布记录编号之间用|隔开

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策略后端列表

backend_api

BackendApi object

web后端详情

policy_https

Array of ApiPolicyHttpResp objects

web策略后端列表

表16 AuthOpt

参数

参数类型

描述

app_code_auth_type

String

AppCode简易认证类型,仅在auth_type为APP时生效,默认为DISABLE:

  • DISABLE:不开启简易认证

  • HEADER:开启简易认证且AppCode位置在HEADER

缺省值:DISABLE

枚举值:

  • DISABLE

  • HEADER

表17 ApiFunc

参数

参数类型

描述

function_urn

String

函数URN

remark

String

描述信息。长度不超过255个字符

说明:

中文字符必须为UTF-8或者unicode编码。

invocation_type

String

调用类型

  • async: 异步

  • sync:同步

枚举值:

  • async

  • sync

version

String

版本。

最大长度:64

timeout

Integer

API网关请求后端服务的超时时间。最大超时时间可通过实例特性backend_timeout配置修改,可修改的上限为600000。

单位:毫秒。

最小值:1

authorizer_id

String

后端自定义认证ID

id

String

编号

register_time

String

注册时间

status

Integer

后端状态

  • 1: 有效

update_time

String

修改时间

表18 ApiMock

参数

参数类型

描述

remark

String

描述信息。长度不超过255个字符

说明:

中文字符必须为UTF-8或者unicode编码。

result_content

String

返回结果

version

String

版本。字符长度不超过64

authorizer_id

String

后端自定义认证ID

id

String

编号

register_time

String

注册时间

status

Integer

后端状态

  • 1: 有效

update_time

String

修改时间

表19 ReqParam

参数

参数类型

描述

name

String

参数名称。 长度为1 ~ 32位的字符串,字符串由英文字母、数字、中划线、下划线、英文句号组成,且只能以英文开头。

type

String

参数类型

枚举值:

  • STRING

  • NUMBER

location

String

参数位置

枚举值:

  • PATH

  • QUERY

  • HEADER

default_value

String

参数默认值

sample_value

String

参数示例值

required

Integer

是否必须

  • 1:是

  • 2:否

location为PATH时,required默认为1,其他场景required默认为2

枚举值:

  • 1

  • 2

valid_enable

Integer

是否开启校验

  • 1:开启校验

  • 2:不开启校验

缺省值:2

枚举值:

  • 1

  • 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

String

是否透传

  • 1:是

  • 2:否

枚举值:

  • 1

  • 2

id

String

参数编号

表20 ApiPolicyFunctionResp

参数

参数类型

描述

function_urn

String

函数URN

invocation_type

String

调用类型

  • async: 异步

  • sync:同步

枚举值:

  • async

  • sync

version

String

版本。字符长度不超过64

timeout

Integer

API网关请求后端服务的超时时间。最大超时时间可通过实例特性backend_timeout配置修改,可修改的上限为600000。

单位:毫秒。

最小值:1

id

String

编号

effect_mode

String

关联的策略组合模式:

  • ALL:满足全部条件

  • ANY:满足任一条件

枚举值:

  • ALL

  • ANY

name

String

策略后端名称。字符串由中文、英文字母、数字、下划线组成,且只能以中文或英文开头。

最小长度:3

最大长度:64

backend_params

Array of BackendParam objects

后端参数列表

conditions

Array of CoditionResp objects

策略条件列表

authorizer_id

String

后端自定义认证对象的ID

表21 ApiPolicyMockResp

参数

参数类型

描述

id

String

编号

effect_mode

String

关联的策略组合模式:

  • ALL:满足全部条件

  • ANY:满足任一条件

枚举值:

  • ALL

  • ANY

name

String

策略后端名称。字符串由中文、英文字母、数字、下划线组成,且只能以中文或英文开头。

最小长度:3

最大长度:64

backend_params

Array of BackendParam objects

后端参数列表

conditions

Array of CoditionResp objects

策略条件列表

authorizer_id

String

后端自定义认证对象的ID

result_content

String

返回结果

表22 BackendApi

参数

参数类型

描述

authorizer_id

String

后端自定义认证对象的ID

url_domain

String

后端服务的地址。

由主机(IP或域名)和端口号组成,总长度不超过255。格式为主机:端口(如:apig.example.com:7443)。如果不写端口,则HTTPS默认端口号为443,HTTP默认端口号为80。

支持环境变量,使用环境变量时,每个变量名的长度为3 ~ 32位的字符串,字符串由英文字母、数字、下划线、中划线组成,且只能以英文开头

req_protocol

String

请求协议

枚举值:

  • HTTP

  • HTTPS

remark

String

描述。字符长度不超过255

说明:

中文字符必须为UTF-8或者unicode编码。

req_method

String

请求方式

枚举值:

  • GET

  • POST

  • PUT

  • DELETE

  • HEAD

  • PATCH

  • OPTIONS

  • ANY

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

是否开启双向认证

id

String

编号

status

Integer

后端状态

  • 1: 有效

register_time

String

注册时间

update_time

String

修改时间

vpc_channel_info

VpcInfo object

VPC通道详情。如果vpc_channel_status = 1,则这个object类型为必填信息

vpc_channel_status

Integer

是否使用VPC通道

  • 1:使用VPC通道

  • 2:不使用VPC通道

表23 VpcInfo

参数

参数类型

描述

ecs_id

String

云服务器ID

ecs_name

Integer

云服务器名称

cascade_flag

Boolean

是否使用级联方式

暂不支持

vpc_channel_proxy_host

String

代理主机

vpc_channel_id

String

VPC通道编号

vpc_channel_port

String

VPC通道端口

表24 ApiPolicyHttpResp

参数

参数类型

描述

id

String

编号

effect_mode

String

关联的策略组合模式:

  • ALL:满足全部条件

  • ANY:满足任一条件

枚举值:

  • ALL

  • ANY

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

枚举值:

  • HTTP

  • HTTPS

req_method

String

请求方式:GET、POST、PUT、DELETE、HEAD、PATCH、OPTIONS、ANY

枚举值:

  • 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

vpc_channel_info

VpcInfo object

VPC通道详情。如果vpc_channel_status = 1,则这个object类型为必填信息

vpc_channel_status

Integer

是否使用VPC通道:

  • 1: 使用VPC通道

  • 2:不使用VPC通道

表25 BackendParam

参数

参数类型

描述

origin

String

参数类别:

  • 后端服务参数:REQUEST

  • 常量参数:CONSTANT

  • 系统参数:SYSTEM

枚举值:

  • REQUEST

  • CONSTANT

  • SYSTEM

name

String

参数名称。 字符串由英文字母、数字、中划线、下划线、英文句号组成,且只能以英文开头。

最小长度:1

最大长度:32

remark

String

描述。字符长度不超过255

说明:

中文字符必须为UTF-8或者unicode编码。

location

String

参数位置:PATH、QUERY、HEADER

枚举值:

  • PATH

  • QUERY

  • HEADER

value

String

参数值。字符长度不超过255 origin类别为REQUEST时,此字段值为req_params中的参数名称;

origin类别为CONSTANT时,此字段值为参数真正的值;

origin类别为SYSTEM时,此字段值为系统参数名称,系统参数分为网关内置参数、前端认证参数和后端认证参数,当api前端安全认证方式为自定义认证时,可以填写前端认证参数,当api开启后端认证时,可以填写后端认证参数。

网关内置参数取值及对应含义:

  • $context.sourceIp:API调用者的源地址

  • $context.stage:API调用的部署环境

  • $context.apiId:API的ID

  • $context.appId:API调用者的APP对象ID

  • $context.requestId:当次API调用生成跟踪ID

  • $context.serverAddr:网关的服务器地址

  • $context.serverName:网关的服务器名称

  • $context.handleTime:本次API调用的处理时间

  • $context.providerAppId:API拥有者的应用对象ID,暂不支持使用

前端认证参数取值:以“$context.authorizer.frontend.”为前缀,如希望自定义认证校验通过返回的参数为aaa,那么此字段填写为$context.authorizer.frontend.aaa

后端认证参数取值:以“$context.authorizer.backend.”为前缀,如希望自定义认证校验通过返回的参数为aaa,那么此字段填写为$context.authorizer.backend.aaa

id

String

参数编号

req_param_id

String

对应的请求参数编号

表26 CoditionResp

参数

参数类型

描述

req_param_name

String

关联的请求参数对象名称。策略类型为param时必选

condition_type

String

策略条件

  • exact:绝对匹配

  • enum:枚举

  • pattern:正则

策略类型为param时必选

枚举值:

  • exact

  • enum

  • pattern

condition_origin

String

策略类型

  • param:参数

  • source:源IP

枚举值:

  • param

  • source

condition_value

String

策略值

id

String

编号

req_param_id

String

关联的请求参数对象编号

req_param_location

String

关联的请求参数对象位置

状态码: 400

表27 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

状态码: 401

表28 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

状态码: 403

表29 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

状态码: 404

表30 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

状态码: 500

表31 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

请求示例

{
  "group_id" : "c77f5e81d9cb4424bf704ef2b0ac7600",
  "match_mode" : "NORMAL",
  "name" : "Api_http",
  "auth_type" : "APP",
  "backend_type" : "HTTP",
  "backend_api" : {
    "vpc_channel_status" : 1,
    "vpc_channel_info" : {
      "vpc_channel_id" : "56a7d7358e1b42459c9d730d65b14e59",
      "vpc_proxy_host" : "www.example.com"
    },
    "req_protocol" : "HTTPS",
    "req_method" : "GET",
    "req_uri" : "/test/benchmark",
    "timeout" : 5000
  },
  "cors" : false,
  "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",
  "backend_params" : [ {
    "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"
  } ],
  "tags" : [ "webApi" ]
}

响应示例

状态码: 200

OK

{
  "id" : "5f918d104dc84480a75166ba99efff21",
  "tags" : [ "webApi" ],
  "arrange_necessary" : 2,
  "backend_type" : "HTTP",
  "auth_type" : "APP",
  "auth_opt" : {
    "app_code_auth_type" : "DISABLE"
  },
  "backend_api" : {
    "update_time" : "2020-08-02T16:32:47.077028841Z",
    "vpc_channel_status" : 1,
    "vpc_channel_info" : {
      "vpc_channel_id" : "56a7d7358e1b42459c9d730d65b14e59",
      "vpc_channel_proxy_host" : "www.example.com"
    },
    "url_domain" : "56a7d7358e1b42459c9d730d65b14e59",
    "req_protocol" : "HTTPS",
    "id" : "1ce8fda3586d4371bd83c955df37e102",
    "req_method" : "GET",
    "register_time" : "2020-07-31T12:42:51Z",
    "req_uri" : "/test/benchmark",
    "timeout" : 5000,
    "status" : 1
  },
  "cors" : false,
  "status" : 1,
  "group_name" : "api_group_001",
  "group_id" : "c77f5e81d9cb4424bf704ef2b0ac7600",
  "group_version" : "V1",
  "match_mode" : "NORMAL",
  "name" : "Api_http",
  "req_protocol" : "HTTPS",
  "req_method" : "GET",
  "req_uri" : "/test/http",
  "type" : 1,
  "version" : "V0.0.1",
  "result_normal_sample" : "Example success response",
  "result_failure_sample" : "Example failure response",
  "register_time" : "2020-07-31T12:42:51Z",
  "update_time" : "2020-08-02T16:32:47.046288842Z",
  "remark" : "Web backend API",
  "backend_params" : [ {
    "name" : "X-CONSTANT-HEADER",
    "value" : "demo",
    "location" : "HEADER",
    "origin" : "CONSTANT",
    "remark" : "constant_demo",
    "id" : "8cb2eba19e7a4423a4e835647a8b8d76"
  }, {
    "name" : "app-id",
    "value" : "$context.appId",
    "location" : "HEADER",
    "origin" : "SYSTEM",
    "remark" : "App ID of the API caller",
    "id" : "216ddda836e74d528f364ff589d9dd21"
  } ]
}

状态码: 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.3002",
  "error_msg" : "API 5f918d104dc84480a75166ba99efff21 does not exist"
}

状态码: 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

错误码

请参见错误码

分享:

    相关文档

    相关产品