我使用apollo服务器和graphql开发后端。我不知道如何在解析器中编写私有函数,“私有”意味着它不能由前端调用,只能由解析器中的其他函数调用。理想情况下,我希望此函数可以在Query中或突变。
Mutation {
addFlowHistroy(id: ID!): FlowHistory
changeFlowStatus(ied: ID!) FlowLog
}
我希望addFlowHistroy
可以呼叫changeFlowStatus
,并且不要暴露在前端。我该怎么办?谢谢。
答案 0 :(得分:0)
没有一种机制可以在另一个内部调用解析器,因此永远不需要这样做。如果您在解析器之间共享某些逻辑,则可以将其提取到其自己的函数中,然后直接在每个解析器内部调用该函数-如果您的架构不打算使用它,则无需在架构中添加字段客户。
const typeDefs = gql`
type Query {
four: Int!
nine: Int!
}
`
const resolvers = {
Query: {
foo: () => square(2),
bar: () => square(3),
},
}
function square(x) {
return x * x
}
如果共享逻辑表示业务逻辑,则它可能应该存在于域模型或服务中。然后,您的解析器只需在该模型或服务上调用适当的方法即可。