RedwoodJS 自动将 GraphQL 查询解析器映射到api/src/services. 如何为给定的 GraphQL 类型创建字段解析器?
假设我有这个架构:
type Person {
name: string!
birthDate: DateTime!
age: Int!
}
Run Code Online (Sandbox Code Playgroud)
但只有name和birthDate存储在数据库中。
使用graphql-tools我会这样编写我的解析器:
const resolvers = {
Query: { ... },
Mutation: { ... },
Person: {
age(person) {
return new Date().getFullYear() - person.birthDate.getFullYear();
},
},
};
Run Code Online (Sandbox Code Playgroud)
PS:我知道年龄公式是错误的。
PS2:为了简单起见,我在这里使用年龄,想象一下计算或从数据库获取数据的成本很高。
它几乎与您使用 的方式相同graphql-tools。
您导出一个与您在服务中的类型同名的对象:
// services/person.js
export const Person = {
age: (_args, { root }) {
return new Date().getFullYear() - root.birthDate.getFullYear();
},
}
Run Code Online (Sandbox Code Playgroud)
顺便说一句,您还可以resolvers在person.sdl.js文件中导出 a (但服务优先):
// graphql/person.sdl.js
export const schema = gql`/* ... */`
export const resolvers = {
Query: {},
Mutation: {},
Person: {},
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
690 次 |
| 最近记录: |