- 最新动态
- 功能总览
- 服务公告
- 产品介绍
- 计费说明
- 快速入门
-
用户指南
- APIG业务使用流程
- 创建用户并授权使用APIG
- 创建APIG实例
- 开放API
- 配置API调用授权(可选)
- 调用API
-
管理API
- 管理API概述
- 查看或编辑APIG的API信息
- 配置API的自定义认证
- 配置API的参数编排规则
- 自定义API的错误响应信息
- 克隆APIG的API
- 下线APIG的API
- 导入导出API
-
APIG的API设计文件扩展定义
- x-apigateway-auth-type
- x-apigateway-request-type
- x-apigateway-match-mode
- x-apigateway-cors
- x-apigateway-is-send-fg-body-base64
- x-apigateway-any-method
- x-apigateway-backend
- x-apigateway-backend.parameters
- x-apigateway-backend.httpEndpoints
- x-apigateway-backend.httpVpcEndpoints
- x-apigateway-backend.functionEndpoints
- x-apigateway-backend.mockEndpoints
- x-apigateway-backend-policies
- x-apigateway-backend-policies.conditions
- x-apigateway-ratelimit
- x-apigateway-ratelimits
- x-apigateway-ratelimits.policy
- x-apigateway-ratelimits.policy.special
- x-apigateway-access-control
- x-apigateway-access-controls
- x-apigateway-access-controls.policy
- x-apigateway-plugins
- x-apigateway-auth-opt
- x-apigateway-result-normal-sample
- x-apigateway-result-failure-sample
- x-apigateway-authorizer
- x-apigateway-response
- x-apigateway-responses
- x-apigateway-pass-through
- x-apigateway-sample
- x-apigateway-content-type
- x-apigateway-orchestrations
- 配置API策略
- 配置凭据策略
- 管理APIG实例
- 查看监控指标与配置告警
- 查看APIG审计日志
- 共享版操作指导(仅存量用户使用)
- 最佳实践
- 开发指南
-
API参考
- 使用前必读
- API概览
- 如何调用API
-
专享版API(V2)
- 专享版-API分组管理
- 专享版-环境管理
- 专享版-环境变量管理
- 专享版-流控策略管理
- 专享版-API管理
- 专享版-签名密钥管理
- 专享版-签名密钥绑定关系管理
- 专享版-API绑定流控策略
- 专享版-设置特殊流控
- 专享版-APP授权管理
- 专享版-概要查询
- 专享版-域名管理
- 专享版-ACL策略管理
- 专享版-API绑定ACL策略
- 专享版-自定义认证管理
- 专享版-OpenAPI接口
- 专享版-VPC通道管理
- 专享版-监控信息查询
- 专享版-分组自定义响应管理
- 专享版-标签管理
- 专享版-实例特性管理
- 专享版-配置管理
- 专享版-实例管理
- 专享版-实例终端节点管理
- 专享版-实例标签管理
- 专享版-微服务中心管理
- 专享版-SSL证书管理
- 专享版-插件管理
- 专享版-凭据管理
- 专享版-凭据配额管理
- 专享版-异步任务管理
- 专享版-编排规则管理
- 专享版-实例自定义入方向端口管理
- 共享版API(仅存量用户使用)
- 专享版API(V1)(待下线)
- 权限策略和授权项
- 附录
- 修订记录
- SDK参考
- 场景代码示例
-
常见问题
- 热门咨询
- 产品咨询
- 开放API
- 发布API
-
调用API
- 调用API失败的可能原因
- 调用API报“414 Request URI too large”
- 调用API报“The API does not exist or has not been published in the environment”
- 调用API报“No backend available”
- API的后端服务报“Backend unavailable”或“Backend timeout”
- API的后端服务报“Backend domain name resolution failed”
- 调用API报“Incorrect IAM authentication information”
- 调用API报“Incorrect app authentication information”
- 修改API后端服务的超时时间上限“backend_timeout”后未生效
- APIG对API请求体的大小是否有限制?
- API调用对请求的响应消息体限制
- 使用iOS系统时,如何使用APP认证调用API?
- 新建一个华为IAM认证方式的API,在配置入参时为什么无法配置HEADER位置的x-auth-token?
- 是否支持移动应用调用API?
- 部署在VPC下的应用是否可以调用API?
- APIG是否支持WebSocket数据传输?
- API的策略后端有多个时,怎么匹配和执行API请求?
- 如何通过APIG访问公网后端服务?
- API认证
- API策略
- 导入导出API
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
自定义API的错误响应信息
网关响应指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个网关响应。
- 最多支持10个响应头自定义,响应头的key支持数字、英文字母和下划线(1到128位),value可以引用运行时变量(可以引用的变量见API网关运行时可获取变量),value不能包含“[[”和“]]”。
- 不论是默认网关响应“default”或是您自定义的网关响应,响应类型范围固定不可修改。您可以修改每种响应的状态码,以及响应内容。
- 网关响应所定义的错误类型固定且不可修改,具体见网关错误响应类型说明。
- 响应内容支持调用API网关运行时变量($context变量),具体见API网关运行时可获取变量。
自定义网关响应
- 进入API网关控制台页面。
- 根据实际业务在左侧导航栏上方选择实例。
- 在左侧导航栏选择“API管理 > 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 |
当前网关错误响应的错误类型 |