如何更新我的放大 graphql 模型的一部分?
Posted
技术标签:
【中文标题】如何更新我的放大 graphql 模型的一部分?【英文标题】:How to update part of my amplify graphql model? 【发布时间】:2021-11-10 14:29:58 【问题描述】:我是 Aws Amplify 和 GraphQL 的新手,我正在努力寻找处理以下问题的最佳方法:
我希望能够在前端编辑我的常见问题解答。前端从后端获取数据,我在前端编辑一个字段并保存,应该存储在后端
我创建了一个简单的放大 graphql 架构:
type FAQ @model(timestamps: null)
id: ID!
sectionTitle: String
questionAndAnswer: [QuestionAndAnswer!]!
type QuestionAndAnswer
id: ID!
question: String
answer: String
然后我填充它,使其包含以下数据:
"data":
"listFAQS":
"items": [
"sectionTitle": "Title2",
"id": "22735682-2bab-4695-b93e-1e50642d4654",
"questionAndAnswer": [
"answer": "answer4",
"id": "4",
"question": "question4"
,
"answer": "answer5",
"id": "5",
"question": "question5"
,
"answer": "answer6",
"id": "6",
"question": "question6"
]
,
"sectionTitle": "Title1",
"id": "21be8234-69f2-47fe-b942-d3e655197c70",
"questionAndAnswer": [
"answer": "answer1",
"id": "1",
"question": "question1"
,
"answer": "answer2",
"id": "2",
"question": "question2"
,
"answer": "answer3",
"id": "3",
"question": "question3"
]
]
有没有一种简单的方法可以让我只更改问题“question4”而不必发送整个常见问题解答“行”?
当我尝试它时,似乎整个数组都被重置了,只保存了新数据。 FAQ 和 QuestionAndAnswer 都应该是一个@model,我将它们与@connection 连接起来并根据需要分别更新它们吗?
【问题讨论】:
【参考方案1】:以下似乎是一种简单的方法,因为如果需要,您可以只更新“question4”,方法是使用其自己的唯一 ID 和 GraphQL 突变。
type FAQ @model(timestamps: null)
id: ID!
sectionTitle: String
questionAndAnswer: [QuestionAndAnswer!]!
type QuestionAndAnswer @model
id: ID!
question: Question
answer: Answer
type Question @model
id: ID!
question: String
type Answer @model
id: ID!
answer: String
我没有包含@connections(它们应该在 QuestionAndAnswer 模型中),但“是”将是“FAQ 和 QuestionAndAnswer 是否都是 @model 的答案,我将它们与 @connection 连接并分别更新为需要吗?”。
【讨论】:
以上是关于如何更新我的放大 graphql 模型的一部分?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 amplify 将 GraphQL 更改从 Appsync 同步到 Android?