我有一个简单的 graphql 查询和一个指令
directive @isOwner(postID: String!) on FIELD_DEFINITION
type Query {
post(postID: String!): Post! @isOwner(postID: postID)
}
问题是我正在使用GQLGen为 Go 生成我的样板代码,并且指令的处理方式与输入值不同。这提出了一个独特的挑战,授权逻辑几乎与实际的数据库读取隔离,这使得逻辑非常低效,因为我必须使数据库读取两次:在验证期间和实际的数据库读取。数据库读取也需要验证所需的数据,我必须编辑我的整个代码才能将这些数据注入到上下文中。有没有办法将输入参数动态传递给指令并动态完成验证,这首先是一个好的做法吗?