什么是 denormalize-json-api
denormalize-json-api 是一个 JavaScript 包,它可以把 JSON API 返回的数据进行去标准化,也就是把所有涉及关系的数据都展开成一个平面的对象。
安装
使用 denormalize-json-api 很简单,只需要在命令行输入以下命令:
npm install denormalize-json-api
使用方法
denormalize-json-api 的使用非常简单,只需要在你的代码中引入它:
const denormalizeJsonApi = require('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