首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于React+Redux应用程序,发回规范化或非规范化API响应哪个更好?

对于React+Redux应用程序,发回规范化或非规范化API响应哪个更好?
EN

Stack Overflow用户
提问于 2017-01-11 07:44:54
回答 3查看 3.3K关注 0票数 13

我正在写一个react-redux应用程序。一开始,它调用单个端点,该端点以大量嵌套的JSON的形式返回大量数据。然后我将其规范化,并将其放入我的redux-orm模式中。

在我看来,在后端创建嵌套数据只是为了对前端的嵌套数据进行循环,以便对其进行规范化,这似乎很愚蠢,因为它来自标准化的PostgreSQL数据库。

代码语言:javascript
复制
Database = Normalized --> 
API = Denormalized --> 
Frontend = Normalized

仅仅发回标准化的API响应是最佳实践吗?

EN

回答 3

Stack Overflow用户

发布于 2018-10-24 20:35:43

我不确定有没有一个“好”的方法。如果你必须处理现有的API,那就处理它,并在你的前端代码中使用代理/解析器来将你的后端有效负载映射到redux-orm存储中,同时也映射到另一端。

我不会在这里假装给出一个答案,而是在我们的React/Redux/Redux-orm应用程序Wisembly Jam生产了近一年后,给出一个反馈。

当我们从头开始的时候,我们选择为我们的API使用JsonAPI spec。我们喜欢它,因为它以一种非常适合我们的PostgreSQL方案和redux-orm方案的方式公开了对象和关系。

这样,不需要双向的模型关系嵌套,只需要在data字段中处理纯对象,在included字段中包含关系。它看起来在一起工作得很好。

您可以查看我们的应用程序Network选项卡来查看我们的api有效负载响应,以及我们的redux-orm存储(使用Redux Chrome扩展)。

希望这会有一点帮助,尽管我是英语,而且不是一个合适的答案:)

票数 1
EN

Stack Overflow用户

发布于 2020-04-17 03:34:40

这会有所帮助;正如您所说,建议在状态:https://redux.js.org/faq/organizing-state#how-do-i-organize-nested-or-duplicate-data-in-my-state中具有规范化的数据

如果你仍然想从API发送嵌套的数据,例如只发送需要的数据,或者如果它是一个现有的API,你可以在将数据添加到存储之前在客户端进行标准化。例如,使用这个库:https://redux.js.org/faq/organizing-state#how-do-i-organize-nested-or-duplicate-data-in-my-state

票数 1
EN

Stack Overflow用户

发布于 2020-04-27 22:42:42

我不明白为什么会有人在前线正常化。我做标准化的全部原因是为了摆脱重复。我不是多次发送相同的嵌套数据,例如user对象,而是将用户id嵌套在一个名为" users“的单独属性中,将所有需要的用户及其id作为键发送,以便快速方便地进行访问,如下所示:

代码语言:javascript
复制
"users": {
    "1": { "id": "1", "name": "user_name", ...rest_of_user_details},
    ...
}

毕竟,前端处理非规范化数据要容易得多。只需较少的代码就可以按原样列出嵌套对象的数据,而不是使用对象ids访问其他属性中的这些对象。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41580461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档