AWS扩展如何在两个模型属性中包含验证? (例如startDate <endDate)

问题描述 投票:0回答:1

使用AWS Amplify如何更新schema.graphql模型文件,以便为创建的graphql API跨多个字段进行后端验证。

例如,使用以下schema.graphql文件进行放大,我如何更新它(或者使用项目中的其他文件),以便在它创建的graphql API上包含服务器端验证检查,以便:

“startDate应该在endDate之前”

schema.graphql文件:

type Event @model {
  id: ID!
  name: String!
  startDate: AWSDate!
  endDate: AWSDate!
  plan: Plan! @connection(name: "PlanEvents")
}

如果使用放大不可能做到这一点(注意我正在使用javascript放大反应前端),建议重新采用什么方法来实现(例如,我需要研究和学习后端AWS组件,以及如何将与自动化graphql api集成,放大有效地为我自动构建)

aws-lambda aws-api-gateway aws-amplify aws-serverless
1个回答
1
投票

你可以添加一个custom resolver

您的事件模型将导致创建文件build/Mutation.createEvent.req.vtl,可以通过添加resolvers/Mutation.createEvent.req.vtl来覆盖该文件。在该文件中,您可以使用逻辑来比较两个日期并抛出错误。就像是:

#if( $ctx.args.input.startDate > $ctx.args.input.endDate )
  $util.error("startDate must be before endDate")
#end

请记住,我不知道在VTL中比较日期的实际语法是什么。 This可能会有所帮助

© www.soinside.com 2019 - 2024. All rights reserved.