我为我的用户查询设置了以下模式:
{
type: UserType,
args: {
id: {
type: GraphQLID,
description: "A user's id.",
},
email: {
type: GraphQLString,
description: "A user's email.",
},
},
resolve: async (parent, args) => {
// ...
}
我想接受 id
和 email
作为参数,但至少需要一个。有没有办法在模式中设置它,而不必在解析函数中编写额外的代码?
或者为每个参数创建单独的查询是否更可取?例如:getUserById
、getUserByEmail
、getUserBySessionToken
等?
最佳答案
如果您想要一个强制执行两者之一的模式,您可以添加一个枚举参数来限定单个字符串参数。该模式在 graphql 中可能如下所示:
type query {
getUser(
lookup: String!
lookupType: UserLookupType!
): User
}
enum UserLookupType {
ID
EMAIL
}
关于javascript - GraphQL : Require at least one argument in a query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48402958/