网关响应指API网关未能成功处理API请求,从而产生的错误响应。API网关提供默认的网关响应(default),如果您需要自定义响应状态码或网关响应内容,可在API分组管理中新增网关响应,其中响应内容符合JSON格式即可。
例如,“default”网关的响应内容为:
{"error_code": "$context.error.code", "error_msg": "$context.error.message", "request_id": "$context.requestId"}
您可以自定义为:
{"errorcode": "$context.error.code", "errormsg": "$context.error.message", "requestid": "$context.requestId","apiId":"$context.apiId"}
JSON体的内容可以按需定制,包括增减字段内容。
说明
每个分组最多可新增4个网关响应。
不论是默认网关响应“default”或是您自定义的网关响应,响应类型范围固定不可修改。您可以修改每种响应的状态码,以及响应内容。
网关响应所定义的错误类型固定且不可修改。
响应内容支持调用API网关运行时变量($context变量)。
操作步骤
步骤 1 进入API网关控制台页面。
步骤 2 根据实际业务在左侧导航栏上方选择实例。
步骤 3 在左侧导航栏选择“API管理 > API分组”。
步骤 4 单击 分组名称 。
步骤 5 单击“分组信息”页签。
步骤 6 在“网关响应”区域,您可以新增或编辑网关响应。
如果修改完默认网关响应后,需要恢复默认配置,单击“恢复默认配置”即可。
网关错误响应类型说明
API网关提供的错误响应类型见下表,其中响应状态码可以按实际需要做自定义修改。
表 API网关的错误响应类型
错误说明 默认的响应状态码 详细说明 拒绝访问
403
拒绝访问,如触发配置的访问控制策略、或异常攻击检测拦截
自定义认证配置错误
500
自定义认证方异常,通信失败、返回异常响应等错误
自定义认证失败
500
自定义认证方返回认证失败
自定义认证身份来源错误
401
前端自定义认证的身份来源信息缺失或不合法错误
第三方认证配置错误
500
第三方认证方异常,通信失败、返回异常响应等错误
第三方认证失败
401
第三方认证方返回认证失败
第三方认证身份来源错误
401
第三方认证的身份来源信息缺失
认证失败
401
认证失败,IAM或APP认证校验失败
认证身份来源缺失
401
认证身份来源信息缺失
后端超时
504
后端超时,与后端的网络交互超过预配置的时间错误
后端不可用
502
后端不可用,网络不可达错误
默认4XX
-
其它4XX类错误
默认5XX
-
其它5XX类错误
未找到匹配的API
404
未匹配到API
请求参数错误
400
请求参数校验失败、不支持的HTTP方法
调用次数超出阈值
429
API调用次数超出所配置的流量策略阈值
凭据未授权
401
使用的凭据未被授权访问该API
API网关运行时可获取变量
表 网关错误响应消息体支持的变量
运行时变量名称 描述 $context.apiId
API的ID
$context.apiName
API名称
$context.appId
API调用者的凭据对象ID
$context.appName
API调用者的凭据对象名称
$context.requestId
当次API调用生成请求ID
$context.stage
API调用的部署环境
$context.sourceIp
API调用者的源地址
$context.reqPath
API请求路径,不包含query参数
$context.reqUri
API请求路径,包含query参数
$context.reqMethod
API请求方法
$context.authorizer.frontend.property
前端自定义认证响应的context映射的指定键值对的字符串值
$context.authorizer.backend.property
后端自定义认证响应的context映射的指定键值对的字符串值
$context.error.message
当前网关错误响应的错误信息
$context.error.code
当前网关错误响应的错误码
$context.error.type
当前网关错误响应的错误类型