如何序列化MirageJS响应以适配EF Core API的List<>返回格式
解决方案
Mirage默认使用符合JSON API规范的序列化器,会自动给响应包裹data外层结构,你需要自定义序列化器关闭该特性即可适配需求:
1. 替换序列化器基础类并关闭根节点包裹
在你的Mirage序列化器目录下新建application.js(全局生效),或对应模型的专属序列化器(比如对应item模型就建item.js),写入以下配置:
import { RestSerializer } from 'miragejs'; export default RestSerializer.extend({ // 关闭响应的根节点包裹 root: false, // 关联数据也直接嵌入当前对象,不需要额外包裹层 embed: true });
注意不要使用默认的
JSONAPISerializer,该序列化器强制要求遵循JSON API规范,必须包含data外层结构,无法满足你的返回格式要求。
2. 保持路由处理器的常规写法
路由中直接返回Mirage的模型集合/实例即可,不需要额外做序列化处理:
// 示例路由配置 this.get('/your-api-path', (schema) => { // 直接返回集合,会自动按上面的序列化器配置返回纯数组 return schema.yourModelName.all(); });
配置完成后就能得到你需要的纯数组格式响应,同时可以正常使用Mirage的Models、Factories能力生成模拟数据。
内容的提问来源于stack exchange,提问作者nolanxiii
相关产品推荐
相关产品推荐

