npm 包 denormalize-json-api 使用教程

阅读时长 6 分钟读完

什么是 denormalize-json-api

denormalize-json-api 是一个 JavaScript 包,它可以把 JSON API 返回的数据进行去标准化,也就是把所有涉及关系的数据都展开成一个平面的对象。

安装

使用 denormalize-json-api 很简单,只需要在命令行输入以下命令:

使用方法

denormalize-json-api 的使用非常简单,只需要在你的代码中引入它:

基本用法

denormalizeJsonApi 函数接收两个参数: denormalizedData 和 options。其中, denormalizedData 是 JSON API 返回的原始数据, options 是一个对象,用于配置去标准化时的行为。

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

上面的代码中,我们使用 denormalizeJsonApi 函数对 denormalizedData 进行去标准化,并把结果赋值给 normalizedData 变量。运行代码,你会发现 normalizedData 包含了所有的数据,并且都展开成了一个平面的对象。输出结果如下:

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

从上面的输出结果中可以看出, denormalizeJsonApi 函数成功把原始数据展开成了一个平面的对象,并使用 entity type 和 entity id 作为对象的属性名。

配置选项

options 对象有以下几个可配置属性:

  • idAttribute: 指定 JSON API 返回的数据中表示 id 的属性名,默认为 id
  • typeAttribute: 指定 JSON API 返回的数据中表示实体类型的属性名,默认为 type
  • included: 指定是否展开included字段中的数据,默认为 true。

示例代码:

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

运行上面的代码,输出结果如下:

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

从输出结果可以看出, denormalizeJsonApi 函数成功地使用了我们指定的属性名来展开数据。

应用场景

denormalize-json-api 适用于需要对 JSON API 的返回结果进行二次处理的情况。比如,你需要在前端展示一个列表,包含了每篇文章所属的用户信息。JSON API 返回的数据中,文章和用户之间的关系是通过 relationship 字段表示的。使用 denormalize-json-api 可以把所有涉及关系的数据都展开成一个平面的对象,这样在前端渲染数据时就更加方便了。

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

纠错
反馈