在AppSync中进行字段级验证可以使用自定义GraphQL resolver。以下是一个示例解决方案,其中使用自定义resolver来执行字段级验证。
{
"version": "2017-02-28",
"operation": "Invoke",
"payload": {
"field1": "$context.arguments.field1",
"field2": "$context.arguments.field2",
"field3": "$context.arguments.field3"
}
}
在模板代码中,将field1
,field2
和field3
替换为您要验证的字段。
在Lambda函数中实现字段级验证逻辑:
以下是一个示例Lambda函数的代码,用于演示字段级验证:
def lambda_handler(event, context):
field1 = event['field1']
field2 = event['field2']
field3 = event['field3']
if not field1:
raise ValueError('Field1 is required')
if len(field2) < 5:
raise ValueError('Field2 should have at least 5 characters')
if not field3.isnumeric():
raise ValueError('Field3 should be a numeric value')
# 执行其他逻辑并返回结果
result = {
'field1': field1,
'field2': field2,
'field3': field3
}
return result
在Lambda函数中,我们检查了field1
是否存在,field2
是否至少有5个字符,以及field3
是否为数字。如果其中任何一个验证失败,我们抛出一个错误。否则,我们可以执行其他逻辑,并返回验证通过的结果。
请确保配置自定义resolver与AppSync的相关Schema,并验证字段级验证的结果。