Есть ли скалярный тип для массивов и карт в graphql для схем в AWS amp? - PullRequest
1 голос
/ 10 июля 2020

Я учился использовать AWS ampify с React, и API, который он использует, представляет собой GraphQL API, который использует AWS AppSyn c. Я очень новичок в graphQL, и моя схема в настоящее время такая. Это схема внутри приложения ampify:

type Note @model {
  id: ID!
  name: String!
  description: String
  title: String
  image: String
}

Чтобы дать вам пример, я хочу сохранить массив объектов внутри компонентов в типе Note, например:

Code-1

type Note @model {
  id: ID!
  name: String!
  description: String
  title: String
  image: String
  components: []
}

Но, читая документы, я узнал, что скалярных типов массивов нет. Я знаю, что могу создать другую таблицу и сделать это так:

Code-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" в схеме?

1 Ответ

1 голос
/ 10 июля 2020

Проверил AWS документы и выяснил, что я могу использовать AWSJSON для списков / массивов, таких как [1, 2, 3], и карт, таких как {"upvotes": 10}, так что теперь моя схема это:

type Note @model {
  id: ID!
  name: String!
  description: String
  title: String
  image: String
  components: AWSJSON
}

Вот ссылка, чтобы узнать больше об этом AWS Скалярные типы

...