出现“AppSync GraphQL查询未返回预期的数据”的问题可能有多种原因。以下是一些常见的解决方法,附带一些可能有问题的示例代码。
User
的对象,并且你想根据id
查询用户,则查询语句应该类似于:query GetUserById($id: ID!) {
getUserById(id: $id) {
id
name
email
}
}
确保你的查询语句与你的数据模型一致,并正确设置查询变量。
以下是一个示例查询数据库中的用户数据的示例查询语句:
type Query {
getUsers: [User]
}
type User {
id: ID!
name: String
email: String
}
确保你的数据源配置正确,并且数据源能够提供正确的用户数据。
以下是一个示例查询只允许管理员访问其他用户的详细信息的示例查询语句:
type Query {
getUserById(id: ID!): User
}
type User {
id: ID!
name: String
email: String
isAdmin: Boolean
}
在查询解析器中,你可以检查当前用户是否为管理员,并根据需要返回数据。确保你正确配置了权限,并且只有授权的用户能够访问相应的数据。
以下是一个示例查询从数据库中获取用户数据的示例查询解析器代码:
const resolvers = {
Query: {
getUserById: (parent, args, context) => {
const { id } = args;
const user = context.db.getUserById(id);
console.log(user); // 打印从数据库返回的用户数据
return user;
}
}
};
module.exports = resolvers;
确保你的数据源能够返回正确的数据,并且查询解析器能够正确处理空数据的情况。
这里提供了一些可能的解决方法,但具体解决方法取决于你的具体情况和应用程序的实现。通过检查查询语句、数据源配置、权限配置和数据返回,你应该能够找到问题并修复它。