序列化 MirageJS 响应以适合 EF Core API 类型 List<>

Posted

技术标签:

【中文标题】序列化 MirageJS 响应以适合 EF Core API 类型 List<>【英文标题】:Serialize MirageJS response to fit EF Core API type List<> 【发布时间】:2021-10-20 20:45:56 【问题描述】:

我正在尝试使用 Mirage 模拟我的 EF Core API,但无法弄清楚如何序列化我的输出。前端期望类似:

[id:1, name:"name1", weight: 150, id:2, name:"name2", weight: 140]

但 Mirage 正在返回类似:

数据:[id:1, name:"name1", weight: 150, id:2, name:"name2", weight: 140]

我可以在路由处理程序中显式返回硬编码的数组并且它可以工作,但我希望能够使用工厂、模型和序列化器来实现这一点。我错过了什么? 谢谢!

【问题讨论】:

【参考方案1】:

我通过在序列化程序中使用 root 属性为 false 解决了这个问题。通过将 root 设置为 false,结果将不会植根于对象内部。请注意,如果您要执行此操作,我认为 embed 必须设置为 true,因为它默认为 false。解决方案将如下所示:

createServer(
  serializers: 
    person: RestSerializer.extend(
      embed: true,
      root: false,
    ),
  ,
  //... rest of createServer
)

【讨论】:

以上是关于序列化 MirageJS 响应以适合 EF Core API 类型 List<>的主要内容,如果未能解决你的问题,请参考以下文章

MirageJs:如果我通过直通调用 api,则无法使用 axios

COR 阻止 PUT 方法的 AWS Preflight 响应

IntelliJ 静态 Web 项目到 Tomcat 或 Angular COR

webservice使用EF生成的model序列化问题

EF关于报错Self referencing loop detected with type的原因以及解决办法

MySql Scaffolding an Existing Database in EF Core