- 最新动态
- 功能总览
- 服务公告
- 产品介绍
- 计费说明
- 快速入门
-
用户指南
- 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
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
调用APIG开放的API
API提供者在API网关开放自己的API后,API调用者从API网关中调用API。
约束与限制
- 如果您使用调试域名(创建API分组时系统分配的调试域名)访问API,该调试域名每天最多可以访问1000次。
- 如果在API网关控制台“API管理 > API策略 > SSL证书管理”界面的“创建SSL证书”窗口中设置了“CA”参数,那么在调用API时,请注意以下限制。
- 使用HTTP/1.0协议调用API时,不允许请求头中存在 "Transfer-Encoding"参数。
- 不允许使用CONNECT请求方法。
- 不允许请求头中同时存在参数"Content-Length"和"Transfer-Encoding"。
- 不允许请求行中存在空格或控制符。
- 不允许header name中存在空格或控制符。
- 不允许请求头"Host"中存在空格或控制符。
- 不允许请求头中存在多个"Host"。
前提条件
在调用API前,确保您的业务系统所在网络与API的访问域名或地址互通。
获取API的调用信息
在调用API前,您需要向API提供者获取API的调用信息。
- 获取凭据的Key和Secret:
在API网关控制台选择“API管理 > 凭据管理”,在凭据列表中单击API所授权凭据的名称,进入凭据详情页面,获取凭据的Key和Secret。
- 获取认证签名所使用SDK:
- 获取AppCode:
在API网关控制台选择“API管理 > 凭据管理”,在凭据列表中单击API所授权凭据的名称,进入凭据详情页面,在“AppCodes”区域中获取AppCode。
- 获取API的请求信息
在API网关控制台选择“API管理 > API列表”,在“API列表”页签中可获取API的“域名”、“请求方法”和“请求路径”。单击API的名称进入“API运行”页面,在“前端配置”或“后端配置”区域获取API基本信息。
- 获取API的认证信息
根据API使用的安全认证方式不同,还要获取相关的请求认证信息,请根据下表说明获取。
认证方式
认证信息
APP认证(签名认证)
向API提供者获取该API所授权凭据的Key和Secret,以及认证签名所使用的SDK。
APP认证(简易认证)
向API提供者获取该API所授权凭据的AppCode。
APP认证(双重认证)
同时获取APP认证以及自定义认证所需的认证信息。
APP认证(app_api_key认证)
向API提供者获取该API所授权凭据的Key和Secret。
APP认证(app_secret认证)
向API提供者获取该API所授权凭据的Key和Secret。
APP认证(app_basic认证)
向API提供者获取该API所授权凭据的Key和Secret。
APP认证(app_jwt认证)
向API提供者获取该API所授权凭据的Key和Secret。
IAM认证(Token认证)
获取云服务平台的用户账号密码。
IAM认证(AK/SK认证)
获取云服务平台的用户账号的AK/SK,以及认证签名所使用的SDK。
IAM认证(双重认证)
同时获取IAM认证以及自定义认证所需的认证信息。
自定义认证
向API提供者获取请求参数中要携带的自定义认证信息。
无认证
无需认证信息。
第三方认证(API策略)
向API提供者获取请求参数中要携带的第三方认证信息。
调用API
本章节仅提供请求地址和认证参数的配置指导,客户端的其他参数配置需要用户自行调整,如超时配置、SSL配置等。如果客户端参数配置错误会导致业务受损,建议参考业界标准进行配置。
API调用支持长连接。但是需要适当使用长连接,避免占用太多资源。
- 构造API请求,示例如下:
POST https://{Address}/{Path}?{Query} {Header} { {Body} }
- POST:请求方法,需替换为获取API的调用信息中获取的请求方法。
- {Address}:请求地址,需替换为获取API的调用信息中获取的域名地址。
API调用场景
API请求参数配置
使用域名调用API
使用服务分配的调试域名或服务绑定的域名调用API,无需另外配置。
使用IP调用DEFAULT分组的API
API允许使用IP地址调用DEFAULT分组下的API,无需另外配置。
使用IP调用非DEFAULT分组的API
- 使用IP地址直接调用非DEFAULT分组下的APP认证的API:
- 将实例的配置参数“app_route”和“app_secret”设置为“on”。开启“app_route”之后,同一凭据不能授权给相同请求路径和方法的API。
- 在请求消息中添加Header参数“X-HW-ID”和“X-HW-APPKEY”,参数值为API所授权凭据的Key和Secret。
须知:使用简易认证(APP认证)调用API时,仅需在请求消息中添加Header参数“X-Apig-AppCode”和“host”即可。
- 使用IP地址直接调用非DEFAULT分组下的非APP认证的API,需要在请求消息中添加Header参数“host”。
- 使用IP地址直接调用非DEFAULT分组下的APP认证的API:
- {Path}:请求路径,需替换为获取API的调用信息中获取的请求路径。
- {Query}:查询参数,可选,格式为“参数名=参数取值”,例如limit=10,多个查询参数之间使用“&”隔开。需根据获取API的调用信息中获取的请求参数进行设置。
- {Header}:请求头参数,格式为“参数名: 参数取值”,例如Content-Type: application/json。需根据获取API的调用信息中获取的请求参数进行设置。
- {Body}:请求消息体,JSON格式。需根据获取API的调用信息中获取的请求体内容描述进行设置。
- 为API请求添加认证信息。
API认证方式
API请求参数配置
APP认证(签名认证)
使用获取的SDK对API请求进行签名,具体请参考使用APP认证调用API。
APP认证(简易认证)
在API请求中添加Header参数“X-Apig-AppCode”,参数值为获取API的调用信息中获取到的AppCode。具体请参考快速入门。
APP认证(app_api_key认证)
- 实例的配置参数“app_api_key”已设置为“on”,开启app_api_key认证。
- 在API请求中添加Header或Query参数“apikey”,参数值为获取API的调用信息中获取到的Key。
APP认证(app_secret认证)
- 实例的配置参数“app_secret”已设置为“on”,开启app_secret认证,且“app_api_key”已设置为“off”,关闭app_api_key认证。
- 在API请求中添加Header参数“X-HW-ID”,参数值为获取API的调用信息中获取到的Key。
- 在API请求中添加Header参数“X-HW-AppKey”,参数值为获取API的调用信息中获取到的Secret。
APP认证(app_basic认证)
- 实例的配置参数“app_basic”已设置为“on”,开启app_basic认证。
- 在API请求中添加Header参数“Authorization”,参数值为"Basic"+base64(appkey+":"+appsecret),其中appkey和appsecret分别为获取API的调用信息中获取到的Key和Secret。
APP认证(app_jwt认证)
- 实例的配置参数“app_jwt”已设置为“on”,开启app_jwt认证。
- 在API请求中添加Header参数“Timestamp”,参数值为当前时间的Unix时间戳,单位为毫秒。
- 在API请求中添加Header参数“Authorization”,参数值为sha256(appkey+appsecret+timestamp),且sha256加密后的字符串需为小写字母。其中appkey和appsecret分别为获取API的调用信息中获取到的Key和Secret,timestamp为当前时间的Unix时间戳,单位为毫秒。
- 在API请求中添加Header参数“X-HW-ID”,参数值为获取API的调用信息中获取到的Key。
APP认证(双重认证)
在API请求中同时携带APP认证和自定义认证的认证信息。
IAM认证(Token认证)
先获取云服务平台的认证Token,然后在API请求中添加Header参数“X-Auth-Token”,参数值为认证Token,具体请参考Token认证。
IAM认证(AK/SK认证)
使用获取的SDK对API请求进行签名,具体请参考AK/SK认证。
IAM认证(双重认证)
在API请求中同时携带IAM认证和自定义认证的认证信息。
自定义认证
根据自定义认证的定义,在API请求参数中携带相关认证信息进行认证。
无认证
无需认证,可直接调用API。
第三方认证(API策略)
向API提供者获取请求参数中要携带的第三方认证信息。