假设我在创建为 Strapi 内容类型的 Author 类型架构上有“ firstName ”和“ lastName ”属性。
我可以使用 graphql 查询它们,但是如果我想查询“ fullName ”属性而不在我的内容类型上添加该字段怎么办?
由于字段不存在,现在它说:无法在类型 \"Author\" 上查询字段 \"fullName\"。
如何使用附加的“虚拟”字段扩展现有类型架构?
我设法使用放置在api/author/config文件夹中的schema.graphql文件中的以下代码来完成它:
module.exports = {
definition: `type AuthorOverride {
firstName: String
lastName: String
fullName: String
}`,
query: `
authors: [AuthorOverride]
`,
type: {
Author: false
},
resolver: {
Query: {
authors: {
description: 'Return the authors',
resolver: 'Author.find'
}
}
}
};
Run Code Online (Sandbox Code Playgroud)
关键是在使用不同类型名称(AuthorOverride)的同时定义具有附加字段的模式以避免重复类型错误。
此外,设置 type: { Author: false } 以便原始类型不会被查询。
现在,在我的解析器函数“Author.find”(放置在我的 Author.js 控制器中)中,我可以映射 fullName 值。
如果有人有更合适的解决方案来在 Strapi 中扩展 graphql 模式,请随时发布。
| 归档时间: |
|
| 查看次数: |
1780 次 |
| 最近记录: |