AWS Amplify API模块:如何使GraphQL字段唯一?
AWS Amplify提供了两个指令来构建GraphQL API。但我还没有发现如何确保字段的唯一性 我想在GraphTool中执行类似的操作:AWS Amplify API模块:如何使GraphQL字段唯一?,graphql,aws-appsync,aws-amplify,Graphql,Aws Appsync,Aws Amplify,AWS Amplify提供了两个指令来构建GraphQL API。但我还没有发现如何确保字段的唯一性 我想在GraphTool中执行类似的操作: type Tag @model @searchable { id: ID! label: String! @isUnique } 这是一个具体的问题。这与如何使用通用GraphQL无关。它非常具体地介绍了如何使用AWS Amplify的API模块实现这一点。()嘿,谢谢你的问题。默认情况下,使用amplify cli还不可能做到这一点,但您可
type Tag @model @searchable {
id: ID!
label: String! @isUnique
}
这是一个具体的问题。这与如何使用通用GraphQL无关。它非常具体地介绍了如何使用AWS Amplify的API模块实现这一点。()嘿,谢谢你的问题。默认情况下,使用amplify cli还不可能做到这一点,但您可以自己使用管道解析器和DynamoDB表上的额外索引来做到这一点。执行此操作的步骤如下所示:
Mutation.createTag
字段上创建管道解析器。通过将@model定义更改为@model(突变:{update:“updateTag”,delete:“deletetetettag”}),可以关闭自动生成的突变.createTag
突变
LookupLabel
的函数,该函数针对新GSI发出查询
,其中标签=$ctx.args.input.label
。如果返回一个值,则抛出一个带有$util.error(“标签不唯一”)
的错误。如果没有返回值,则继续CreateTag
的函数,该函数针对标记表发出PutItem
谢谢我最终会测试这一点,看看这是否有效,但您可能可以做一些事情,比如将id重命名为字符串! 所以 或: 第二个直接取自文档:
这些文档是最近更新的,希望大家能更容易理解。感谢您的详细阐述!我相信Amplify和AWS服务非常强大,但是开发者的体验非常糟糕。每个模块都有一些复杂的配置和/或处理,我从来没有在开发过程中感到如此痛苦。我真的很喜欢它背后的概念和想法,但这是最后一根稻草。我将删除Amplify和所有模块(托管除外),并采用更“传统”的方法。我没有完成这件事。谢谢你提供更详细的说明。这些非常有用。我会花一些时间来审视和思考这些评论,并可能提出更多的问题。谢谢你的反馈。这段视频也很好。已经一年多了,没有任何进展?我相信现在使用GraphQL Transformer可以简化添加自定义解析器的过程,但是更清楚地解释如何添加一个解析器来强制执行一个独特的字段会非常好。
type Tag @model @key["id"] {
id: String!
}
type Customer @model @key(fields: ["email"]) {
email: String!
username: String
}