npm 包 ajv-cli 使用教程

阅读时长 4 分钟读完

ajv-cli 是一个基于 JSON Schema 的数据校验工具,它可以通过命令行进行调用和使用。在前端开发中,我们经常需要对接口返回的 JSON 数据进行校验,而 ajv-cli 可以帮助我们快速有效地完成这个任务。

安装

首先,我们需要安装 ajv-cli。在终端中输入以下命令即可完成安装:

使用

校验 JSON 数据

假设我们有一个 JSON 文件 data.json,内容如下:

要对这个数据进行校验,我们需要创建一个 JSON Schema 文件 schema.json,内容如下:

-- -------------------- ---- -------
-
  ---------- ------------------------------------------
  ------- ---------
  ------------- -
    ------- -
      ------- --------
    --
    ------ -
      ------- ---------
      ---------- --
      ---------- ---
    --
    -------- -
      ------- ---------
      --------- -------
    -
  --
  ----------- -------- ------ --------
-

其中,$schema 字段指定了 JSON Schema 的版本,type 字段指定了根元素的数据类型为对象,properties 字段定义了对象的属性及其校验规则,required 字段指定了必须包含的属性。

接下来,我们可以使用 ajv-cli 进行校验:

如果数据符合校验规则,则输出空;否则,输出错误信息。在本例中,由于 data.json 中的数据符合 schema.json 中定义的规则,所以输出为空。

校验接口返回数据

有时候我们需要对接口返回的 JSON 数据进行校验。假设我们有一个返回以下数据的接口:

-- -------------------- ---- -------
-
  ------- ----
  ---------- -----
  ------- -
    ------- ----- -----
    ------ ---
    -------- ----------------------
  -
-

要对这个数据进行校验,我们需要创建一个 JSON Schema 文件 response-schema.json,内容如下:

-- -------------------- ---- -------
-
  ---------- ------------------------------------------
  ------- ---------
  ------------- -
    ------- -
      ------- ---------
      ---------- ----
      ---------- ---
    --
    ---------- -
      ------- --------
    --
    ------- -
      ------- ---------
      ------------- -
        ------- -
          ------- --------
        --
        ------ -
          ------- ---------
          ---------- --
          ---------- ---
        --
        -------- -
          ------- ---------
          --------- -------
        -
      --
      ----------- -------- ------ --------
    -
  --
  ----------- -------- ---------- -------
-

其中,code 字段表示状态码,必须为 2xx 范围内的数值;message 字段表示接口返回的消息,必须为字符串类型;data 字段表示接口返回的数据,必须为对象类型,并且包含 nameageemail 等属性。

我们可以使用 curl 命令模拟调用接口并获取返回数据:

然后,我们可以使用 ajv-cli 进行校验:

如果数据符合校验规则,则输出空;否则,输出错误信息。在本例中,由于接口返回的数据符合 response-schema.json 中定义的规则,所以输出为空。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/46797

纠错
反馈