加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何在AngularJS中处理REST API返回对象而不是数组以进行收集?

发布时间:2020-12-17 17:26:27 所属栏目:安全 来源:网络整理
导读:我正在使用的后端团队实现了一个REST API,它将集合作为对象(而不是数组)返回. 例如,调用GET / some_resources将返回: { id_1: { p1: "lorem",p2: 4 },id_2: { p1: "ipsum",p2: 2 },id_n: { p1: "sic",p2: 7 }} 这种结构限制在Angular中使用,因为你不能利用n
我正在使用的后端团队实现了一个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 .

这导致了很多代码样板,我想知道是否有一种“角度方式”来处理这种情况.

解决方法

“他们认为API消费者不应该引导响应结构的设计”

争辩说 – 如果API的唯一消费者当前是前端,那么在添加其他消费者之前,他们有时间将其置于适当的格式.该数据非常适合作为数组而不是对象.我不知道您的数据集可能有多大,但是您不希望将来做的一件事就是在前端操纵对象 – 无论大小.浏览器资源有限,服务器总是可以添加资源.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读