要解决“AWS AppSync GraphQL API仅从DynamoDB返回20个项目”的问题,您需要在AppSync API的模式文件中进行更改。以下是一个示例解决方案:
打开您的AppSync API的模式文件。这通常是一个名为schema.graphql
的文件。
在模式文件中,查找您要更改的查询类型。假设您要更改名为listItems
的查询类型。
在listItems
查询类型中,找到与DynamoDB数据源相关的解析器。这通常是一个名为resolver
的字段。
在resolver
字段中,添加一个limit
参数,用于指定从DynamoDB返回的项目数。示例如下:
type Query {
listItems(limit: Int): [Item]
}
limit
参数的值,并将其传递给DynamoDB查询。以下是一个使用AWS SDK for JavaScript的示例代码:const AWS = require('aws-sdk');
const docClient = new AWS.DynamoDB.DocumentClient();
// ...
const resolvers = {
Query: {
listItems: async (parent, args) => {
const { limit } = args;
const params = {
TableName: 'YourDynamoDBTable',
Limit: limit,
};
try {
const data = await docClient.scan(params).promise();
return data.Items;
} catch (error) {
console.error(error);
throw new Error('Error retrieving items from DynamoDB');
}
},
},
};
现在,您可以在使用listItems
查询时传递limit
参数来限制从DynamoDB返回的项目数量。例如,listItems(limit: 20)
将返回最多20个项目。