在AWS AppSync中,可以使用GraphQL来定义查询类型和返回多个单独的类型。下面是一个示例解决方法:
type User {
id: ID!
name: String!
}
type Post {
id: ID!
title: String!
content: String!
}
type Query {
getUsers: [User!]!
getPosts: [Post!]!
}
// 示例解析器代码
// 使用AWS Lambda函数作为数据源
const AWS = require('aws-sdk');
const lambda = new AWS.Lambda();
exports.handler = async (event) => {
const params = {
FunctionName: 'yourLambdaFunctionName',
Payload: JSON.stringify(event),
};
try {
const response = await lambda.invoke(params).promise();
const users = JSON.parse(response.Payload);
return users;
} catch (error) {
console.error(error);
throw new Error('Error retrieving users');
}
};
重复步骤3,为其他查询字段(如getPosts)实现相应的解析器逻辑。
最后,在AppSync控制台的Schema页面,运行模拟查询或实际查询,以获取多个单独类型的结果:
query {
getUsers {
id
name
}
getPosts {
id
title
content
}
}
这样,就可以通过AppSync查询类型返回多个单独的类型。每个查询字段都可以有自己的解析器逻辑,返回相应的类型数据。