什么是变量?
对于一些常见的参数,我们可以将其定义成变量,以便达到一处改动,全部改动的目的。
例如我们请求的 URL 域名,完全可以将其设置为变量,在 URL 栏只输入路由即可。这样的话,我们可以通过控制变量的值,来达到请求不同域名、相同路由的 API 接口(比如可以用来快速切换开发环境和生产环境)。
如下图所示,我们将域名定义成了变量:url。
怎么定义变量?
ApiPost V3 支持 2 种方式来定义变量:预定义和脚本定义。我们分别来讲。
1、ApiPost 预定义变量
点击右上角的环境管理器,点击【新建环境】,此时在弹窗内就可以定义变量了。
如图,我们在这里定义了变量:url,并且赋值为:https://console.apipost.cn
此时,当我们点击发送的时候,{{url}} 就会自动被替换为 https://console.apipost.cn。
当然除了,url 里,请求参数也可以使用变量替代。如下图:
我新增定义了一个变量 {{title}},并放在了 body 请求参数中,发送后,服务器成功接收到了我定义的变量。
2、ApiPost 脚本定义变量
新版本的 ApiPost V3 支持通过 JS 脚本来定义变量,这样的话,我们的变量丰富性就多了。
还如同刚才的示例,我通过脚本定了一个变量 url,效果同刚才的效果是一样的。如下图:
看到这里,你可能会注意到:这里可以设置全局变量和环境变量。那么什么是全局变量?什么是环境变量?它们有什么区别呢?
环境变量:
环境变量仅在当前已选中环境生效,当您切换了右上角的当前环境后,环境变量则失效。
常见的使用场景如上面举的例子,我们可以定义开发环境和生产环境,从而指定不同的 URL 来区分接口请求地址的不同。
全局变量:
全局变量不受当前环境的影响,只要是在同一个项目下,该变量都会生效。
环境变量和全局变量的调用方法都是一样的 {{变量名}}。
3、ApiPost 脚本定义复杂变量
ApiPost 支持自定义函数来定义复杂的变量。如下图:
在上面的例子中,我们定一个函数_random,
function _random(){
return ‘ 你好,中国 ’ + Math.random();
}
它返回一个字符串:“你好中国”+ 随机数,并且通过
apt.globals.set(“random_var”, _random());
进行了赋值。发送后,服务器成功接收。
4、ApiPost 变量的 MD5 加密
ApiPost 支持变量的 md5 加密发送:
$.md5()
如下图所示:
5、ApiPost 变量的 base64 编码
ApiPost 支持变量的 base64 编码发送:
$.base64.encode()
$.base64.decode()
如下图所示:
6、ApiPost 脚本定义 mock 变量
ApiPost 支持 mock.js 变量(官网:http://mockjs.com/)。如下图:我们定一个一个 mock 对象,含数字、手机号、邮箱、中文名等。然后通过
apt.variables.set(“mock_email”, _mock_data.list[0].email);
取第一条数据的 email 信息。
服务器成功接收到 mock 出来的随机邮箱。
附以上示例完整脚本:https://mp.apipost.cn/a/b298e6c8d1e61230
怎么查看当前已定义的变量?
我们可以通过点击右上角的“变量管理器”进行查看当前已定义的变量。
建议:变量名统一用小写。