使用Postman玩转腾讯云

本文介绍了如何利用Postman这个API测试工具来调用腾讯云的API接口,包括Postman的基本功能、发送HTTP请求、定义变量、编写脚本,以及详细步骤,如创建、查询和退还云服务器。

1. 简介

产品上云,那么作为产品的开发人员,其中一项重要的工作就是调用云厂商提供的API接口,来使用云产品。俗话说,工欲善其事,必先利其器。为了上云更轻松,我们需要一把利器来调用云厂商的API接口。接下来本文就向你介绍如何使用Postman这个API测试利器,来调用腾讯云API的接口,让你轻松玩转腾讯云。

2. Postman介绍

Postman是一个API开发协作平台。使用Postman的功能你可以简化构建API与开发测试流水线的每一步工作。最终你可以更快、更好地创建API。Postman有以下六大功能:API client, Automated Testing, Design & Mock,Documentation,Monitors和Workspaces。

作为API client,使用Postman发送HTTP请求非常简单与直接,其支持REST,SOAP,GraphQL等形式的请求。而现在的API都采用RESTFul的形式,使用Postman进行HTTP API的测试是再好不过的工具了。

2.1 Postman发送HTTP请求

下图展示了Postman中发送一个HTTP请求测试用例的几个组成部分。HTTP Request和Response都非常直观地展示在界面中。

 

如果只能发送简单的HTTP请求,那Postman也不算好用。下面我们介绍两个让Postman更强大更好用的功能,这也是我们能够玩转腾讯云必不可少的功能。

2.2 Postman中定义变量

在Postman中可以定义变量,最常用的有环境变量和全局变量。我们可以通过定义变量在请求中将一些参数使用变量代替,这使得请求的模板不用变动,只需改变变量的值,就能实现改变请求内容的功能。

如下图所示,我们Request的Body中使用了{ {version}}变量,在发送请求时,Postman就会到环境变量和全局变量中寻找{ {version}}变量的值,并进行替换。

 

2.3 Pre-Request Script和Test Script

在Postman中我们可以使用JavaScript编写一些脚本,在发送HTTP请求之前和收到HTTP响应之后,分别完成一些工作。比如在请求前动态地添加一些HTTP 请求Headers,收到响应后判断回包中的内容是否符合预期,以达到测试请求结果的目的。脚本在使用范围上分为COLLECTION级别,FOLDER级别和REQUEST级别脚本。

下图清晰地展现了不同级别的Pre-Request Script和Test Script的生效顺序和生效时间。

 

在Postman的脚本中,我们不仅使用环境变量和全局变量,还可以使用Postman提供的一些JavaScript库进行一些复杂的运算,比如生成签名、对请求数据中的某些字段进行base64编码等工作。

3. Postman调用腾讯云API

腾讯云API,可以使开发者简单快捷地使用腾讯云产品。相比与web控制台,API更直接高效。我们可以充分利用Postman变量和脚本功能,用其调用腾讯云的API,来使用云服务器、批量计算、弹性伸缩等全部云服务。

3.1 腾讯云API简介

为了创建HTTP请求,那么我们就需要介绍一下腾讯云API中的几个基本概念。

1. 服务地址:腾讯云API支持全地域就近接入,可以让开发者更快地连接腾讯云产品。服务地址的组成方式如:cvm.tencentcloudapi.com。其构造规则为service+endpoint。service为每个云产品的名称如云服务器“cvm”,endpoint固定为“.tencentcloudapi.com”。

2. 通信协议:HTTPS

3. 请求方法:POST(推荐)和GET。其中 POST 请求支持的 Content-Type 类型:为application/json(推荐),必须使用 TC3-HMAC-SHA256 签名方法。

4. API公共参数:

公共参数名

含义

Postman中调用腾讯云翻译API进行接口测试,需要按照以下步骤操作: ### 准备工作 1. **获取API密钥**: - 登录腾讯云控制台。 - 进入API密钥管理页面,获取`SecretId`和`SecretKey`。这两个参数是调用腾讯云API的必要条件。 2. **安装Postman**: - 如果尚未安装Postman,可以从其官网下载并安装。 ### 构建请求 1. **打开Postman**: - 启动Postman应用程序,点击“New”按钮创建一个新的请求。 - 输入请求名称,例如“Tencent Cloud Translation API Test”,然后点击“Create”。 2. **设置请求类型和URL**: - 选择请求类型为`POST`。 - 在URL输入框中输入腾讯云翻译API的端点地址,例如`https://tmt.tencentcloudapi.com/`。 3. **设置请求头**: - 点击“Headers”标签页。 - 添加以下请求头: - `Content-Type`: `application/json` - `Authorization`: `TC3-HMAC-SHA256 Credential=<your-secret-id>/20240415/hunyuan/tmt.tencentcloudapi.com, SignedHeaders=content-type;host, Signature=<signature>` 4. **生成签名**: - 签名生成较为复杂,通常需要使用腾讯云提供的SDK或者手动计算。这里简要介绍手动计算的方法: - 构造待签名字符串,包含HTTP请求方法、主机名、请求路径、查询参数、请求头、请求体等信息。 - 使用`HMAC-SHA256`算法对上述字符串进行加密,得到签名值。 - 将签名值转换为十六进制格式,并将其作为`Signature`参数的值。 5. **设置请求体**: - 点击“Body”标签页。 - 选择`raw`选项,并从下拉菜单中选择`JSON`格式。 - 输入以下JSON格式的请求体: ```json { "SourceText": "Hello, world!", "Source": "en", "Target": "zh", "ProjectId": 0 } ``` ### 发送请求 1. **发送请求**: - 点击“Send”按钮发送请求。 - 如果一切正常,应该会收到一个包含翻译结果的响应。 2. **处理响应**: - 检查响应状态码,确保为200 OK。 - 查看响应体中的翻译结果,确认是否符合预期。 ### 注意事项 - **签名生成**:由于签名生成较为复杂,建议使用腾讯云提供的SDK来简化这一过程。[^2] - **错误处理**:如果请求失败,检查`SecretId`和`SecretKey`是否正确,以及请求头和请求体是否正确设置。 - **测试环境**:建议在测试环境中进行API调用,以免影响生产环境的数据。 ### 示例代码 以下是一个简单的Python脚本,用于生成签名并调用腾讯云翻译API: ```python import hashlib import hmac import time import requests def generate_signature(secret_key, date, service, canonical_request): k_date = hmac.new(secret_key.encode('utf-8'), date.encode('utf-8'), hashlib.sha256).digest() k_service = hmac.new(k_date, service.encode('utf-8'), hashlib.sha256).digest() k_signing = hmac.new(k_service, b'tc3_request', hashlib.sha256).digest() signature = hmac.new(k_signing, canonical_request.encode('utf-8'), hashlib.sha256).hexdigest() return signature def main(): secret_id = 'your-secret-id' secret_key = 'your-secret-key' date = time.strftime('%Y%m%d', time.gmtime()) service = 'hunyuan' host = 'tmt.tencentcloudapi.com' action = 'TextTranslate' version = '2023-03-06' region = 'ap-beijing' # 构造Canonical Request http_request_method = 'POST' canonical_uri = '/' canonical_querystring = '' canonical_headers = 'content-type:application/json; charset=utf-8\nhost:' + host + '\n' signed_headers = 'content-type;host' payload = '{"SourceText":"Hello, world!","Source":"en","Target":"zh","ProjectId":0}' payload_hash = hashlib.sha256(payload.encode('utf-8')).hexdigest() canonical_request = f"{http_request_method}\n{canonical_uri}\n{canonical_querystring}\n{canonical_headers}\n{signed_headers}\n{payload_hash}" # 生成签名 signature = generate_signature(secret_key, date, service, canonical_request) # 构造Authorization头部 authorization = f"TC3-HMAC-SHA256 Credential={secret_id}/{date}/{service}/{host}, SignedHeaders={signed_headers}, Signature={signature}" # 发送请求 headers = { 'Content-Type': 'application/json; charset=utf-8', 'Authorization': authorization } url = f"https://{host}/" response = requests.post(url, data=payload, headers=headers) print(response.json()) if __name__ == '__main__': main() ``` ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值