gpt4 book ai didi

angularjs - 如何处理在 AngularJS 中返回对象而不是数组进行集合的 REST API?

转载 作者:行者123 更新时间:2023-12-02 22:25:13 25 4
gpt4 key购买 nike

与我合作的后端团队实现了一个 REST API,它将集合作为对象(而不是数组)返回。例如,调用 GET/some_resources 将返回:

{
id_1: {
p1: "lorem",
p2: 4
},
id_2: {
p1: "ipsum",
p2: 2
},
id_n: {
p1: "sic",
p2: 7
}
}

此结构在 Angular 中的使用受到限制,因为您无法利用 ng-repeat 指令(例如 orderBy and filter do not work with object )。

对于前面的示例,理想情况下,我宁愿期望一个对象数组:

[ 
{id: "id_1", p1: "lorem", p2: 4},
{id: "id_2", p1: "ipsum", p2: 2},
{id: "id_n", p1: "sic", p2: 7}
]

这将允许直接使用 ngResource 服务返回的对象并将其发送回来,而无需触及其结构。它还允许充分使用 ng-repeat 指令。

当我要求后端团队将集合响应的结构从对象更改为数组时,他们认为 API 使用者不应该主导响应结构的设计。

我部分同意他们的论点,所以目前,我找到的唯一解决方案是将对象转换为数组,在我的范围内使用该对象并将数组重新转换回原始对象结构,然后再将其发送回去到 API。

这会导致大量代码样板,我想知道是否有一种“Angular 方式”来处理这种情况。

最佳答案

“他们认为 API 使用者不应主导响应结构的设计”

反驳 - 如果当前 API 的唯一使用者是前端,那么他们有时间在添加其他使用者之前将其设置为正确的格式。该数据非常适合作为数组而不是对象。我不知道您的数据集可能有多大,但您将来不想做的一件事是在前端操作对象(无论大小)。浏览器的资源有限,服务器可以随时添加资源。

关于angularjs - 如何处理在 AngularJS 中返回对象而不是数组进行集合的 REST API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37648627/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com