AWS Amplify如何包括跨两个模型属性的验证? (例如startDate <endDate)

时间:2019-03-06 23:12:30

标签: aws-lambda aws-api-gateway aws-amplify aws-serverless

使用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")
}

如果使用amplify无法做到这一点(请注意,我正在使用带有响应前端的javascript amplify),则建议采取哪种方法来实施(例如,我必须研究和学习哪些后端AWS组件,以及如何将其与自动放大的graphql api集成在一起,已经为我有效地自动构建了

1 个答案:

答案 0 :(得分: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可能有帮助