对于 AWS amplify 中的模式,graphql 中的数组和映射是不是有标量类型?
Posted
技术标签:
【中文标题】对于 AWS amplify 中的模式,graphql 中的数组和映射是不是有标量类型?【英文标题】:Is there a scalar type for arrays and maps in graphql for schemas in AWS amplify?对于 AWS amplify 中的模式,graphql 中的数组和映射是否有标量类型? 【发布时间】:2020-10-31 01:34:22 【问题描述】:我正在学习将 AWS amplify 与 React 结合使用,它使用的 API 是一个利用 AWS AppSync 的 GraphQL API。我对 graphQL 很陌生,我的架构目前是这样的。这是放大应用程序内部的架构:
type Note @model
id: ID!
name: String!
description: String
title: String
image: String
举个例子,我想在 Note 类型的组件中存储一个对象数组,如下所示:
代码 1
type Note @model
id: ID!
name: String!
description: String
title: String
image: String
components: []
但是阅读文档后我知道没有任何数组标量类型。我知道我可以创建另一个表并这样做:
代码 2
type Note @model
id: ID!
name: String!
description: String
title: String
image: String
components: [elements!]!
type elements @model
id: ID!
item: String!
但我不希望这样,因为它会创建一个新表。我只想要一个包含 id、名称、描述、标题、图像和一个组件数组的表,您可以在其中存储对象,如上面 Code-1 中所示。有没有办法做到这一点?还有“@modal”在架构中的作用是什么?
【问题讨论】:
"自定义 JSON 标量" - 检查通用 graphql 并放大文档 @xadm 非常感谢。发现可以使用“AWSJSON”,我想我的错误是查看 graphql 文档而不是 AWS 文档。 【参考方案1】:查看了 AWS 文档,发现我可以将 AWSJSON 用于 [1, 2, 3] 之类的列表/数组和 "upvotes": 10 之类的地图,所以现在我的架构是:
type Note @model
id: ID!
name: String!
description: String
title: String
image: String
components: AWSJSON
这里是了解更多信息的链接AWS Scalar Types
【讨论】:
以上是关于对于 AWS amplify 中的模式,graphql 中的数组和映射是不是有标量类型?的主要内容,如果未能解决你的问题,请参考以下文章
AWS Amplify SPA React + Cognito(已启用 Microsoft Azure Ad Enterprise SSO)+ Microsoft Graph API
aws amplify appsync 中的 Graphql 突变错误
在 AWS Amplify GraphQL 中对结果进行排序而不进行过滤