首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >规范化api响应的规范化

规范化api响应的规范化
EN

Stack Overflow用户
提问于 2016-02-26 18:16:19
回答 2查看 645关注 0票数 0

因此,当您请求一个资产时,端点会以类似的方式进行响应。Bios只是一个例子。

代码语言:javascript
复制
{
  _embedded: {
    bios: [
      {
        name: 'Blorp Gorp',
        id: 256,
        _links: {},
        arrayCollection: [...],
        objectCollection: [...],
        ...
      },
      ...
    ],
  _links: {},
}

我想把它压平,我甚至不确定这是否有意义:

代码语言:javascript
复制
{
  results: [256, 257],
  entities: {
    bios: {
      256: {...},
      257: {...}
    },
    arrayCollection: {
      256: [...],
      257: [...]
    },
    objectCollection: {
      256: {...},
      257: {...}
    }
  }
}

但是,在它们到达实体之前,我无法让模式识别任何嵌套。如果我通过了normalize(camelizedJson.embedded.bios, bioSchema),它就能工作,但是如果我传递给它normalize(camelizedJson.embedded, bioSchema),我就不能让它意识到我想解析bios

我想我可以将另一个变量传递到中间件中,该中间件为它提供了成功解析的嵌入式密钥。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-27 20:06:49

但是,在它们到达实体之前,我无法让模式识别任何嵌套。如果我通过了规范化(camelizedJson.embedded.bios,bioSchema),它就能工作,但是如果我传递它规范化(camelizedJson.embedded,bioSchema),我就不能让它意识到我想解析bios。

您可能需要的是normalize(camelizedJson.embedded, { bios: bioSchema })。模式可以嵌套在普通的JavaScript对象中,例如:

代码语言:javascript
复制
normalize(camelizedJson.embedded, {
  bios: bioSchema,
  lols: lolSchema,
  wow: arrayOf({
    wat: {
      ugh: ughSchema
    }
  })
})
票数 2
EN

Stack Overflow用户

发布于 2016-02-26 18:56:02

我相信您需要创建一个模式来定义"MyArrayThing“和"MyObjectThing”(这里是假名称),然后在"Bio“模式定义中,使用Normalizr的arrayOf(SomeSchemaObject)函数定义"arrayCollection”和"objectCollection“子字段。然后,一旦定义了单个Bio对象的样子,解析命令也需要看起来大致类似于normalize(camelizedJson.embedded.bios, arrayOf(Bio))

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

https://stackoverflow.com/questions/35658888

复制
相关文章

相似问题

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