为嵌套类型定义编写解析器
Write resolvers for nested type definitions
假设我的 GraphQL API 有以下类型定义:
const typeDef = `
type Book {
title: String
author: Author
likes: Int
}
type Author {
id: String
name: String
age: Int
books: [Book]
}
type Query{
books(authorid: String!): Book
}
`
那么,为此我需要多少个解析器?我应该仅使用一个解析器 books
和 return 来处理所有书籍和作者信息的查询请求,还是应该制作多个解析器,例如 Query -> books
、Book -> author
和 Author -> books
?我不确定模块化架构和解析器如何协同工作。
无论您使用多少类型(书籍、作者等)或输入,您都需要提供。
const schema = `
type Mutation {
mutatePost(postId:Int) :Int
}
type Query {
hello: String
posts: [String]
books(authorId: String!): Book
}
`
您需要使用与您在解析器中查询必须相同中定义的名称相同的名称
const resolvers = {
Query: {
async hello() {
return 'Hello';
},
async posts() {
return ['Hello', 'World];
},
async books(_, { authorId }) {
//Return data which you is defined in type Book
//return Book
}
},
Mutation: {
async mutatePost(_, {
postId
}, context) {
//return Integer
}
},
}
只有每个查询和变异都需要查询解析器和变异解析器
假设我的 GraphQL API 有以下类型定义:
const typeDef = `
type Book {
title: String
author: Author
likes: Int
}
type Author {
id: String
name: String
age: Int
books: [Book]
}
type Query{
books(authorid: String!): Book
}
`
那么,为此我需要多少个解析器?我应该仅使用一个解析器 books
和 return 来处理所有书籍和作者信息的查询请求,还是应该制作多个解析器,例如 Query -> books
、Book -> author
和 Author -> books
?我不确定模块化架构和解析器如何协同工作。
无论您使用多少类型(书籍、作者等)或输入,您都需要提供。
const schema = `
type Mutation {
mutatePost(postId:Int) :Int
}
type Query {
hello: String
posts: [String]
books(authorId: String!): Book
}
`
您需要使用与您在解析器中查询必须相同中定义的名称相同的名称
const resolvers = {
Query: {
async hello() {
return 'Hello';
},
async posts() {
return ['Hello', 'World];
},
async books(_, { authorId }) {
//Return data which you is defined in type Book
//return Book
}
},
Mutation: {
async mutatePost(_, {
postId
}, context) {
//return Integer
}
},
}
只有每个查询和变异都需要查询解析器和变异解析器