AWS AppSync更新架构

时间:2019-08-03 00:13:26

标签: amazon-web-services graphql aws-amplify aws-appsync

我正在使用AWS AppSync Web控制台,我从头开始创建了一个新API。

我创建了这样的新资源:

type ToDo {
  id: ID!
  title: String!
}

AWS AppSync创建DynamoDB表和架构后,如果我想更新架构并添加新字段怎么办?

type ToDo {
  id: ID!
  title: String!
  completed: Boolean
}

我知道AWS Amplify有一个命令amplify api gql-compile,然后是amplify push,它将更新架构和DynamoDB表。

是否可以通过AWS AppSync web console执行此操作?

1 个答案:

答案 0 :(得分:2)

如果您使用AWS AppSync控制台向导来创建它。您将需要执行以下操作:

type ToDo {
    id: ID!
    title: String
    completed: Boolean # add here
}

input UpdateToDoInput {
    id: ID!
    title: String
    completed: Boolean # add here
}

input CreateToDoInput {
    title: String
    completed: Boolean # add here
}

input TableToDoFilterInput {
    id: TableIDFilterInput
    title: TableStringFilterInput
    completed: Boolean # add here
}

现在它们应该是控制台右上角的橙色按钮“ Save Schema”。如果按此键,它将保存您的新架构,并且可以对您的AWS AppSync API运行一些新查询。

转到查询窗口,然后将完成的添加到您的突变和listToDos选择集中。

# Click the orange "Play" button and select the createToDo
# mutation to create an object in DynamoDB.
# If you see an error that starts with "Unable to assume role",
# wait a moment and try again.
mutation createToDo($createtodoinput: CreateToDoInput!) {
  createToDo(input: $createtodoinput) {
    id
    title
    completed
  }
}


# After running createToDo, try running the listToDos query.
query listToDos {
  listToDos {
    items {
      id
      title
      completed
    }
  }
}

更新查询变量,以包含已完成的值

{
  "createtodoinput": {
    "title": "Hello, world!",
    "completed":true
  }
}

这应该是您为简单属性所做的全部工作。