验证 AppSync DynamoDB 解析器中的用户输入

Aru*_*wij 1 amazon-web-services graphql serverless aws-appsync

我有 AWS AppSync API 和 DynamoDb,我可以使用DynamoDb Resolvers创建并从中获取数据。(VTL模板)

我不确定如何使用 VTL 模板进行用户输入验证。我想确保联系人的“firstName”长度在 2 - 30 个字符之间。

如何使用 VTL 实现这一目标?有没有办法在 GraphQL 模式本身内进行这种验证?

这是我的 GraphQL 架构,

schema {
   query: Query
   mutation: Mutation
}

type Mutation {
   createContact(contact: ContactInput!): Contact! 
}

type Contact {
    contactId: ID!
    firstName: String!
    lastName: String!
    email: String!
}

input ContactInput {
    firstName: String!
    lastName: String!
    email: String!
}
Run Code Online (Sandbox Code Playgroud)

Zac*_*les 5

我找不到在 GraphQL 中执行此操作的好方法,但您可以使用 或 在 VTL 中轻松完成此操作$util.validate$util.error请参阅AWS 文档)。它们都具有将项目添加到errors数组的相同结果。

这是一个演示$util.validatehttps://mappingtool.dev/app/appsync/bee55bd607e2166091451e7a7959318e

这是一个演示$util.errorhttps://mappingtool.dev/app/appsync/006d6c05e8bb7257c6cebce34494994c