跳到主要内容

使用内置 JS 类库

提示

Apipost 内置了大量实用第三方 JS 类库,您可以方便的在 预后执行脚本 中使用它们。

内置类库列表

注意

使用内置类库时,不需要用 require/import 引用,直接使用即可!

_

lodash JS 实用工具库
使用文档 示例:

_.forEach([1, 2], function(value) {
console.log(value);
});
// => Logs `1` then `2`.

_.forEach({ 'a': 1, 'b': 2 }, function(value, key) {
console.log(key);
});
// => Logs 'a' then 'b' (iteration order is not guaranteed).

uuid

生成 UUID
使用文档

let uuidStr = uuid.v4();
console.log(uuidStr) // 78fdb729-ed5f-4dff-860c-d87d02b43078

CryptoJS

编码 / 解码库,常用的编码解码方式基本都有,如 Base64、MD5、SHA、AES 等。
使用文档

// Encrypt
var ciphertext = CryptoJS.AES.encrypt('my message', 'secret key 123').toString();

// Decrypt
var bytes = CryptoJS.AES.decrypt(ciphertext, 'secret key 123');
var originalText = bytes.toString(CryptoJS.enc.Utf8);

console.log(originalText); // 'my message'

JSON5

更具兼容性的 JSON5.parse 和 JSON5.stringify
使用文档

let _json = {
// comments
unquoted: 'and you can quote me on that',
singleQuotes: 'I can use "double quotes" here',
lineBreaks: "Look, Mom! \
No \\n's!",
hexadecimal: 0xdecaf,
leadingDecimalPoint: .8675309, andTrailing: 8675309.,
positiveSign: +1,
trailingComma: 'in objects', andIn: ['arrays',],
"backwardsCompatible": "with JSON",
};
console.log(JSON5.stringify(_json))

let _jsonStr = `{
// comments
unquoted: 'and you can quote me on that',
singleQuotes: 'I can use "double quotes" here',
lineBreaks: "Look, Mom! \
No \\n's!",
hexadecimal: 0xdecaf,
leadingDecimalPoint: .8675309, andTrailing: 8675309.,
positiveSign: +1,
trailingComma: 'in objects', andIn: ['arrays',],
"backwardsCompatible": "with JSON",
}`;
console.log(JSON5.parse(_jsonStr))

jsonpath

使用JSONPath表达式查询和操作JavaScript对象
使用文档

var cities = [
{ name: "London", "population": 8615246 },
{ name: "Berlin", "population": 3517424 },
{ name: "Madrid", "population": 3165235 },
{ name: "Rome", "population": 2870528 }
];

var names = jsonpath.query(cities, '$..name');
console.log(names)
// [ "London", "Berlin", "Madrid", "Rome" ]

x2js

一个在XML和JavaScript对象之间进行转换的库
使用文档

xml2json()

XML 转 JSON 方法,示例:

let xml = `<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>`;

let json = xml2json(xml);
console.log(json);

// 将返回
// {
// "note": {
// "to": "Tove",
// "from": "Jani",
// "heading": "Reminder",
// "body": "Don't forget me this weekend!"
// }
// }

chai

BDD / TDD 断言库
使用文档

moment

日期处理库 (不含 locales)
使用文档

dayjs

一个轻量的处理时间和日期的 JavaScript 库
使用文档

JSEncrypt

执行OpenSSL RSA加密、解密和密钥生成的Javascript库。
使用文档

//rsa加密
var encryptor = new JSEncrypt() // 创建加密对象实例
//之前ssl生成的公钥,复制的时候要小心不要有空格
var pubKey = '-----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1QQRl0HlrVv6kGqhgonD6A9SU6ZJpnEN+Q0blT/ue6Ndt97WRfxtSAs0QoquTreaDtfC4RRX4o+CU6BTuHLUm+eSvxZS9TzbwoYZq7ObbQAZAY+SYDgAA5PHf1wNN20dGMFFgVS/y0ZWvv1UNa2laEz0I8Vmr5ZlzIn88GkmSiQIDAQAB-----END PUBLIC KEY-----'
encryptor.setPublicKey(pubKey)//设置公钥
var rsaPassWord = encryptor.encrypt('要加密的内容') // 对内容进行加密
//rsa解密
var decrypt = new JSEncrypt()//创建解密对象实例
//之前ssl生成的秘钥
var priKey = '-----BEGIN RSA PRIVATE KEY-----MIICXAIBAAKBgQC1QQRl0HlrVv6kGqhgonD6A9SU6ZJpnEN+Q0blT/ue6Ndt97WRfxtSAs0QoquTreaDtfC4RRX4o+CU6BTuHLUm+eSvxZS9TzbwoYZq7ObbQAZAY+SYDgAA5PHf1wNN20dGMFFgVS/y0ZWvv1UNa2laEz0I8Vmr5ZlzIn88GkmSiQIDAQABAoGBAKYDKP4AFlXkVlMEP5hS8FtuSrUhwgKNJ5xsDnFV8sc3yKlmKp1a6DETc7N66t/Wdb3JVPPSAy+7GaYJc7IsBRZgVqhrjiYiTO3ZvJv3nwAT5snCoZrDqlFzNhR8zvUiyAfGD1pExBKLZKNH826dpfoKD2fYlBVOjz6i6dTKBvCJAkEA/GtL6q1JgGhGLOUenFveqOHJKUydBAk/3jLZksQqIaVxoB+jRQNOZjeSO9er0fxgI2kh0NnfXEvH+v326WxjBwJBALfTRar040v71GJq1m8eFxADIiPDNh5JD2yb71FtYzH9J5/d8SUHI/CUFoROOhxr3DpagmrnTn28H0088vubKe8CQDKMOhOwx/tS5lqvN0YQj7I6JNKEaR0ZzRRuEmv1pIpAW1S5gTScyOJnVn1tXxcZ9xagQwlT2ArfkhiNKxjrf5kCQAwBSDN5+r4jnCMxRv/Kv0bUbY5YWVhw/QjixiZTNn81QTk3jWAVr0su4KmTUkg44xEMiCfjI0Ui3Ah3SocUAxECQAmHCjy8WPjhJN8y0MXSX05OyPTtysrdFzm1pwZNm/tWnhW7GvYQpvE/iAcNrNNb5k17fCImJLH5gbdvJJmCWRk=-----END RSA PRIVATE KEY----'
decrypt.setPrivateKey(priKey)//设置秘钥
var uncrypted = decrypt.decrypt(encrypted)//解密之前拿公钥加密的内容

$.md5()

一个简单的生成 MD5 加密串函数,示例:

let md5Str = $.md5(123456);
console.log(md5Str) // 487f7b22f68312d2c1bbc93b1aea445b

sleep()

延迟函数,示例:

console.log(1)
sleep(2000)
console.log(2) // 将延迟 ```2000毫秒``` 后输出。

console

控制台输出,示例:

console.log(123)// 将在 Apipost 控制台输出 123

markdown picture

validCookie

验证指定cookie针对指定URL是否有效。
使用文档

const cookie1 = {
name: 'foo',
value: 'bar',
path: '/site',
expires: new Date('Tue Jul 01 2025 06:01:11 GMT-0400 (EDT)'),
maxAge: 1000,
domain: '.example.com',
secure: true,
httpOnly: true,
sameSite: 'lax'
},
cookie2 = {
name: 'foo',
value: 'bar',
path: '/site',
expires: new Date('Tue Jul 01 1979 06:01:11 GMT-0400 (EDT)'),
maxAge: 1000,
domain: '.example.com',
secure: true,
httpOnly: true,
sameSite: 'lax'
},
cookie3 = {
name: 'foo',
value: 'bar',
path: '/site',
expires: new Date('Tue Jul 01 2025 06:01:11 GMT-0400 (EDT)'),
maxAge: 1000,
domain: '.not-example.com',
secure: true,
httpOnly: true,
sameSite: 'lax'
},
cookie4 = {
name: 'foo',
value: 'bar',
path: '/no-site',
expires: new Date('Tue Jul 01 2025 06:01:11 GMT-0400 (EDT)'),
maxAge: 1000,
domain: '.not-example.com',
secure: true,
httpOnly: true,
sameSite: 'lax'
};
validCookie.isvalid('https://www.example.com/site', cookie1) //满足, 返回
/*
{
"cookie": "foo=bar",
"set-cookie": "foo=bar; Max-Age=1000; Domain=www.example.com; Path=/site/; Expires=Tue, 01 Jul 2025 10:01:11 GMT; HttpOnly; Secure; SameSite=Lax"
}
*/

validCookie.isvalid('https://www.example.com/site', cookie2) //不满足, 返回false
validCookie.isvalid('https://www.example.com/site', cookie3) //不满足, 返回false
validCookie.isvalid('https://www.example.com/site', cookie4) //不满足, 返回false

urlJoin

将所有参数连接在一起返回并规范化的url。
使用文档

const fullUrl = urlJoin('http://www.google.com', 'a', '/b/cd', '?foo=123');

console.log(fullUrl);

aTools

实用工具库。
使用文档

let json='{"name":"我是一名ApiPost用户"}';
let email='1030698842@qq.com';

aTools.isJson(json); //true
aTools.isEmail(email); //true

//目前支持:
array2Tree //扁平数据转树状结构
beautifyRaw // 美化数据,目前支持object,xml,html,jsonp,javascript. 返回结果为对象。包含mode(类型),value(美化后的结果)
formatXml //格式化xml数据
getUrlQuery //获取url中的query数据(对象)。
getUrlQueryArray //获取url中的query数据(数组)。
isEmail //验证邮箱格式
isXml // 验证是否为xml格式
isJson //验证是否为json格式
isJson5 //验证是否为json5格式
isJsonp //验证是否为jsonp格式
isHtml //验证是否为html格式
ms2second //毫秒时间戳转秒时间戳
formatHtml // 格式化html数据
jsonp2Obj // jsonp格式转为对象
errorResult // 统一失败结果对象
successResult // 统一成功结果对象
bufferToRaw // buffer转raw
completionHttpProtocol // 补齐http协议开头
NewURL // 根据url生成url对象
注意

使用内置类库时,不需要用 require/import 引用,直接使用即可!