使用 JS 类库

  1. 内置的 JS 类库

    通过 require方法可以直接使用 Apifox 内置的 JS 类库。

    1. var cryptoJs = require("crypto-js");
    2. console.log(cryptoJs.SHA256("Message"));
  2. 非内置的 JS 类库

    通过fox.liveRequire方法可以动态引入未内置的但是在 npm 上已发布的其他各种库(仅支持纯 js 库,最好是写明了支持浏览器端运行的 browser 字样的库,含 C/C++等语言扩展之类的库是不支持加载的,会运行超时或异常)。

    注意:

    1. 仅 Apifox 版本号 >= 1.4.5 才支持,老版本不支持,请升级到最新版。
    2. 非内置库需要动态从网络下载 JS 类库,所以必须要联网,且性能有有所损耗,建议优先使用内置的 JS 库。
    1. // 使用非内置的 JS 类库示例
    2. // 引入单个 npm 库:md5
    3. fox.liveRequire("md5", (md5) => {
    4. try {
    5. console.log(md5("message")); // => '04a410d39d39f9831217edd702d7fde0'
    6. } catch (error) {
    7. console.error("An error occurred during liveRequire callback", error);
    8. throw error;
    9. }
    10. });
    11. // 引入多个 npm 库:camelize,md5
    12. fox.liveRequire(["camelize", "md5"], ([camelize, md5]) => {
    13. try {
    14. console.log("loaded module is ", camelize, md5);
    15. console.log('camelize("foo-bar") is ', camelize("foo-bar")); // => 'fooBar'
    16. console.log('md5("message") is ', md5("message")); // => '04a410d39d39f9831217edd702d7fde0'
    17. } catch (error) {
    18. console.error("An error occurred during liveRequire callback", error);
    19. throw error;
    20. }
    21. });
    22. // 引入多个 npm 库(带版本):camelcase,md5
    23. fox.liveRequire(
    24. [
    25. {
    26. name: "camelcase",
    27. version: "6.2.1",
    28. },
    29. "md5",
    30. ],
    31. ([camelCase, md5]) => {
    32. try {
    33. console.log("loaded module is ", camelCase, md5);
    34. console.log('camelCase("foo-bar") is ', camelCase("foo-bar")); // => 'fooBar'
    35. console.log('md5("message") is ', md5("message")); // => '04a410d39d39f9831217edd702d7fde0'
    36. } catch (error) {
    37. console.error("An error occurred during liveRequire callback", error);
    38. throw error;
    39. }
    40. }
    41. );

内置类库列表

  • Encode、Decode 库
    • atob使用 JS 类库 - 图1(v2.1.2):Base64 解码
    • btoa使用 JS 类库 - 图2(v1.2.1):Base64 编码
    • crypto-js使用 JS 类库 - 图3(v3.1.9-1):编码 / 解码库,常用的编码解码方式基本都有,如 Base64、MD5、SHA、HMAC、AES 等等。
      • 注意:只能 require 整个模块,不能单独 require 类库里的某个子模块,具体看本文档末尾说明。
    • jsrsasign使用 JS 类库 - 图4(10.3.0):RSA 加密 / 解密 (Apifox 版本号 >= 1.4.5 才支持,老版本不支持)
  • 断言
    • chai使用 JS 类库 - 图5 (v4.2.0):BDD / TDD 断言库
  • 实用工具
  • JSONSchema 校验库
    • tv4使用 JS 类库 - 图13(v1.3.0):JSONSchema 校验库
    • ajv使用 JS 类库 - 图14(v6.6.2):JSONSchema 校验库
  • 内置 NodeJS 模块

使用方式

require 对应模块,赋值给一个变量即可使用。

  1. // SHA256
  2. var cryptoJs = require("crypto-js");
  3. console.log(cryptoJs.SHA256("Message"));
  4. // base64
  5. var atob = require("atob");
  6. console.log(atob("Message"));

注意

使用内置类库时,只能 require 整个模块,不能单独 require 类库里的某个子模块

  1. // 正确示例:
  2. var cryptoJs = require("crypto-js");
  3. console.log(cryptoJs.SHA256("Message"));
  4. // 错误示例
  5. var SHA256 = require("crypto-js/sha256");
  6. console.log(SHA256("Message"));

::