使用 AWS AppSync 进行输入验证
Input validation with AWS AppSync
是否可以在不添加另一个 "layer" 交互的情况下使用 AWS AppSync 进行输入验证?
我觉得添加 lambda 函数会破坏它的目的。
我想完成的是至少对字符串进行一些正则表达式验证。
如果没有,那么使用 AppSync 或类似解决方案 (firebase) 的人是如何做到的?
如果只是正则表达式验证而不必根据数据源中的数据检查输入,那么您可以在解析器请求映射模板中预先添加一些验证逻辑。
请参阅下面的示例,检查输入字段是否匹配来自 myvaliddomain.com
的电子邮件。如果它未通过验证,我们将中止并在该字段中出错。
#set($valid = $util.matches("^[a-zA-Z0-9_.+-]+@(?:(?:[a-zA-Z0-9-]+\.)?[a-zA-Z]+\.)?(myvaliddomain)\.com", $ctx.args.input))
#if (!$valid)
$util.error("$ctx.args.input is not a valid email.", "ValidationError")
#end
## Rest of your request mapping template below
是否可以在不添加另一个 "layer" 交互的情况下使用 AWS AppSync 进行输入验证?
我觉得添加 lambda 函数会破坏它的目的。
我想完成的是至少对字符串进行一些正则表达式验证。
如果没有,那么使用 AppSync 或类似解决方案 (firebase) 的人是如何做到的?
如果只是正则表达式验证而不必根据数据源中的数据检查输入,那么您可以在解析器请求映射模板中预先添加一些验证逻辑。
请参阅下面的示例,检查输入字段是否匹配来自 myvaliddomain.com
的电子邮件。如果它未通过验证,我们将中止并在该字段中出错。
#set($valid = $util.matches("^[a-zA-Z0-9_.+-]+@(?:(?:[a-zA-Z0-9-]+\.)?[a-zA-Z]+\.)?(myvaliddomain)\.com", $ctx.args.input))
#if (!$valid)
$util.error("$ctx.args.input is not a valid email.", "ValidationError")
#end
## Rest of your request mapping template below