API调用
最近更新时间: 2024-10-17 17:10:00
操作场景
该任务指导您对密钥对认证的 API 发起调用。
前提条件
创建密钥对鉴权的API
- 在 API 网关控制台,创建一个 API,选择鉴权类型为“密钥对鉴权”。
- 将 API 所在服务发布至发布环境。
- 在控制台密钥管理界面创建密钥对。
- 在控制台使用计划界面创建使用计划,并将使用计划与已创建的密钥对绑定。
- 将使用计划与 API 或 API 所在服务进行绑定。
确认信息
在发起调用前,您必须拥有所要调用的 API 的 SecretId 和 SecretKey,了解所调用 API 的请求路径、请求方法、请求参数等信息。
工具准备
您可以通过浏览器、浏览器插件、Postman 工具、客户端等来源发起请求,如果是简单验证,建议使用 Postman 工具来发起请求。
调用样例
地址
http://service-xxxxxxxx-1234567890.ap-{region}.apigateway.{domain-name}.com/release
//请填入您所要调用的 API 服务 URL
URL 拼接规则为:服务路径 + 环境参数 + API path
方法
POST
请求体
QueryParam_a=value1&QueryParam_b=value2
请求头
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-cn
Connection: Keep-Alive
Host: service-xxxxxxxx-1234567890.ap-{region}.apigateway.{domain-name}.com/release
User-Agent: Mozila/4.0(compatible;MSIE5.01;Window NT5.0)
Accept-Encoding: gzip,deflate
Content-Type: application/x-www-form-urlencoded;charset=utf-8
//请求体类型,请根据实际请求体内容设置。
X-Client-Proto: http
X-Client-Proto-Ver: HTTP/1.1
X-Real-IP: 163.177.93.244
X-Forwarded-For: 106.19.71.102, 163.177.93.244
Date: Sun, 21 Sep 2017 06:18:21 GMT
Authorization: hmac id="AKIDCgXXXXXXXX48pN", algorithm="hmac-sha1", headers="Date Host", signature="630123456789da9c"
//签名,具体签名方法见认证与安全中的密钥计算方法
- 最终发送的 HTTP 请求内至少包含两个 Header:Date 和 X-Date 二选一以及 Authorization,可以包含更多 header。如果使用 Date Header,服务端将不会校验时间;如果使用 X-Date Header,服务端将校验时间。
- Date Header 的值为格林威治时间(GMT)格式的 HTTP 请求构造时间,例如 Fri, 09 Oct 2015 00:00:00 GMT。
- X-Date Header 的值为格林威治时间(GMT)格式的 HTTP 请求构造时间,例如 Mon, 19 Mar 2018 12:08:40 GMT。X-Date Header 里的时间和当前时间的差值不能超过15分钟。
- Authorization Header的组成可参考密钥对认证文档。
响应处理
响应码
响应码(code) | 含义 |
---|---|
200 ≤ code < 300 | 成功 |
300 ≤ code < 400 | 重定向,需要进一步的操作以完成请求 |
400 ≤ code < 500 | 客户端错误 |
code > 500 | 服务端错误 |
响应头
Content-Type: text/html; charset=UTF-8
Content-Length: 122
Date: Sun, 21 Sep 2017 06:46:04 GMT
Server: squid/3.5.20
Connection: close
Set-Cookie:1P_JAR=2017-09-18-06; expires=Mon, 25-Sep-2017 06:46:04 GMT; path=/; domain=.qq.com
X-Secret-ID:AKIDXXXXXXXX48pN
//密钥对中的 secret_id
X-UsagePlan-ID:XXXXXXXX
//密钥对绑定的使用计划 ID
X-RateLimit-Limit:500
//使用计划中的限流配置
X-RateLimit-Used:100/125
//使用计划中的限流使用情况