Я пытаюсь начать работу с AWS AppSync и AWS Amplify .
До сих пор мне удалось следовать документации AWS (особенно здесь и здесь ) для успешного создания образца приложения TODO (третий фрагмент кода) и включения API API AppSync GraphQL следующим образом:
$ amplify add api
? Please select from one of the below mentioned services GraphQL
? Provide API name: MySampleTodoAPI
? Choose an authorization type for the API API key
? Do you have an annotated GraphQL schema? No
? Do you want a guided schema creation? true
? What best describes your project: Single object with fields (e.g., “Todo” with ID, name, description)
Это создаетэто «тривиальное» schema.graphql
(то есть содержащее только один объект):
type Todo @model {
id: ID!
name: String!
description: String
}
amplify push
генерирует гораздо более сложный, вторичный schema.graphql
из файла выше, создает код JavaScript с объектами для мутацийзапросы и т. д., а также настраивает ресурсы AWS (т. е. таблицу DynamoDB, сегменты S3 и т. д.).Кажется, что в приложении есть ошибки, но, по сути, он работает, включая добавление данных, введенных в пользовательском интерфейсе, в таблицу DynamoDB.
Я создал второй образец блога, как и выше, только на этот раз, выбрав Single object with fields (e.g., “Todo” with ID, name, description)
вместо Single object with fields ...
.
Это генерирует этот "комплекс" schema.graphql
(то есть содержащий несколько связанных объектов):
type Blog @model {
id: ID!
name: String!
posts: [Post] @connection(name: "BlogPosts")
}
type Post @model {
id: ID!
title: String!
blog: Blog @connection(name: "BlogPosts")
comments: [Comment] @connection(name: "PostComments")
}
type Comment @model {
id: ID!
content: String
post: Post @connection(name: "PostComments")
}
Вопрос: Как сделатьЯ имею дело со «сложными» объектами в приложении React при обращении к бэкэнду AWS AppSync GraphQL?
В качестве (надуманного) примера, если предположить, что я хочу добавить новый объект Blog
с одним Post
иодин Comment
объект, могу ли я как-то передать все объекты одной мутации в одном Connect
компоненте React?Или я должен сначала вызвать мутацию Blog
, а затем две другие?Или мне нужно разобраться с настройкой (вторичных) schema.graphql
и файлов JavaScript, которые Amplify генерирует для меня?
К сожалению, пример кода AWS работает только с «тривиальными» схемами, а не «сложными» -и Amplify кажется настолько свежим, что все посты сторонних разработчиков и примеры проектов используют другие технологии ...
Большое спасибо за внимание!: -)