title: "使用 Postman" date: 2019-03-01T21:58:00+08:00 tags: ["restful", "工具控"] draft: false
{% raw %}
上篇文章我们讲到 API 可能会使用到的 JWT 认证。既然讲到 API 开发就不得不讲到 API 调试以及测试神器 - Postman。
根据上面截图的地方,可以找到创建环境变量的设置。设置按钮旁边的『眼睛』按钮可以查看当前使用的环境变量的值。
<!--more-->先设置环境名称,再设置环境的 Key
和 Value
,如上图设置,如果你想调用 http
的值只要使用 {{http}}
就可以调用。
一个典型的 RESTful 请求如上图所示。
POST 还可以非常方便的获取各种语言的请求代码,方便你在开发中使用。
Request
和 Response
在软件的左下角,找到终端的图标,就可以打开 Postman Console。
Postman 有一个 Pre-request Scripts 功能,可以在发生请求之前执行一段自定义脚本。这个功能在请求需要 Token 验证的 API,非常有用。比方说我们现在请求的接口需要 JWT 验证,传统的方式就是我们在其他地方算好 Token,粘贴过来就可以了。但是这种方式有很大的弊端,因为一般的 Token 都有实效时间的,所以 Token 实效了,下次你又得重复操作一遍。
但是有了 Pre-request Scripts 功能,我们就可以自动计算 Token,不用考虑实效问题,示例:
client_key
和 client_secret
var removeIllegalCharacters = function(input) {
return input
.replace(/=/g, '')
.replace(/\+/g, '-')
.replace(/\//g, '_');
};
var base64object = function(input) {
var inputWords = CryptoJS.enc.Utf8.parse(JSON.stringify(input));
var base64 = CryptoJS.enc.Base64.stringify(inputWords);
var output = removeIllegalCharacters(base64);
return output;
};
var clientKey = postman.getEnvironmentVariable('client_key');
var clientSecret = postman.getEnvironmentVariable('client_secret');
var exp = Math.floor(Date.now() / 1000) + 15000;
var now = Math.floor(Date.now() / 1000);
var header = { 'alg': 'HS256', 'typ': 'JWT' };
var payload = { 'exp': exp, 'iat': now, 'client_id': clientKey};
var unsignedToken = base64object(header) + "." + base64object(payload);
var signatureHash = CryptoJS.HmacSHA256(unsignedToken, clientSecret);
var signature = CryptoJS.enc.Base64.stringify(signatureHash);
var token = 'Bearer ' + unsignedToken + '.' + signature;
postman.setGlobalVariable('jwt_token', removeIllegalCharacters(token));
{{jwt_token}}
了上述方式是给单独的 API 的配置 Pre-request Scripts,Postman 还可以给集合配置 Pre-request Scripts,这样的话整个集合就可以都使用这个 {{jwt_token}}
了。但是值得注意的有:
pm.variables.get('client_key')
代替 postman.getEnvironmentVariable('client_key')
。更多使用方法,请查看官方文档 Pre-request scripts。
我们除了可以自定义脚本之外,Postman 还内置了一些常用的变量:
{{$guid}}
:v4 样式的 guid{{$timestamp}}
:当前时间戳{{$randomInt}}
:0 到 1000 之间的随机整数更多使用方法,请查看官方文档 Variables。
目前还没用到,下次补上……
如果你做也做接口开发,需要经常测试接口的话,推荐你使用 Postman,如果你经常使用 Postman 的话,可以多花的时间研究一下这个工具的使用方式,一定会为你之后节约很多时间。
正所谓『磨刀不误砍柴工』。
{% endraw %}