【问题标题】:With GraphQL + Apollo Client, how to return a totalCount after mutating?使用 GraphQL + Apollo Client,变异后如何返回 totalCount?
【发布时间】:2019-03-16 17:14:51
【问题描述】:
我有以下:
const typeDefs = `
type Request {
id: ID!
email: String!
totalCount: Int
}
type Mutation {
createRequest(email: String!): Request!
}
`;
export default typeDefs;
现在 totalCount 正在返回 null。使用 GraphQL,返回 TotalCount 作为突变响应的正确方法是什么。 TotalCount 是否应该以某种方式包含在 Request 模型中?
【问题讨论】:
标签:
reactjs
graphql
apollo
【解决方案1】:
您已将totalCount 定义为每个Request 对象的属性,但totalCount 表示所有Request 对象的计数。
在突变响应中允许附加数据的常见做法是让它返回一个包装器。例如:
type Mutation {
createRequest(email: String!): CreateRequestResponse!
}
type CreateRequestResponse {
request: Request!
totalCount: Int!
}
CreateRequestResponse 是一个包装对象,可以包含客户端在响应中可能需要的任意属性。 totalCount 这里只是一个例子;你可以在那里添加任何属性。
这样,Request 类型的定义将是:
type Request {
id: ID!
email: String!
}
这是理想的,因为它只包含特定请求的属性。