在 AWS Amplify 中,$condition 输入参数用于在执行 GraphQL mutation 时应用条件表达式。条件表达式允许您根据指定的条件来限制对数据的修改。
以下是一个代码示例,演示如何在 AWS Amplify CLI 生成的 GraphQL mutation 中使用 $condition 输入参数:
import { API } from 'aws-amplify';
const updatePost = async (postId, content) => {
const mutation = `
mutation UpdatePost($postId: ID!, $content: String!, $version: Int!, $condition: ModelPostConditionInput) {
updatePost(input: { id: $postId, content: $content, version: $version, condition: $condition }) {
id
content
version
}
}
`;
const variables = {
postId: postId,
content: content,
version: 1, // 版本号用于实现乐观并发控制
condition: { version: { eq: 1 } }, // 使用条件表达式
};
try {
const response = await API.graphql({ query: mutation, variables });
console.log('Updated post:', response.data.updatePost);
} catch (error) {
console.error('Error updating post:', error);
}
};
在上述示例中,$condition 输入参数用于限制只有在 version 字段等于 1 时才执行更新操作。通过指定条件表达式,您可以确保只有在满足特定条件时才会对数据进行修改。
请注意,$condition 输入参数是可选的,如果不提供条件表达式,则默认情况下不应用任何限制。