【发布时间】:2019-04-22 14:36:34
【问题描述】:
是否可以在不添加另一个交互“层”的情况下使用 AWS AppSync 进行输入验证?
我觉得添加一个 lambda 函数会破坏它的目的。
我想要完成的是至少对字符串进行一些正则表达式验证。
如果不是,那么使用 AppSync 或类似解决方案 (firebase) 的人如何做到这一点?
【问题讨论】:
标签: amazon-web-services graphql aws-appsync
是否可以在不添加另一个交互“层”的情况下使用 AWS AppSync 进行输入验证?
我觉得添加一个 lambda 函数会破坏它的目的。
我想要完成的是至少对字符串进行一些正则表达式验证。
如果不是,那么使用 AppSync 或类似解决方案 (firebase) 的人如何做到这一点?
【问题讨论】:
标签: amazon-web-services graphql aws-appsync
如果它只是正则表达式验证而无需根据数据源中的数据检查输入,那么您可以在解析器请求映射模板中预先添加一些验证逻辑。
请参阅下面的示例,以检查输入字段是否匹配来自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
【讨论】:
$util.matches 的第一个参数是一个字符串,是否可以从数据库本身获取该正则表达式模式?