如何使用 GraphQL API 将数据插入 Astra DB?

How do I insert data to Astra DB using GraphQL API?

我正在尝试关注这个 youtube tutorial

我在插入第一条数据时卡住了。 Ania在20.46演示如下:

mutation insertGenres {
  action: insertreference_list(value: {label: "genre", value: "action"}) {
    value{
      value
    },
  }

当我尝试这个时,我收到一条错误消息:

{
  "errors": [
    {
      "message": "Validation error of type FieldUndefined: Field 'insertreference_list' in type 'Mutation' is undefined @ 'insertreference_list'",
      "locations": [
        {
          "line": 2,
          "column": 3
        }
      ],
      "extensions": {
        "classification": "ValidationError"
      }
    }
  ]
}

当我 google 错误时,很多响应告诉人们使用突变而不是查询 - 但我是从突变开始的。我想知道如何解决这个错误,但我也想找到技巧来改进我寻找答案的搜索策略。

当我查看有关将 GraphQL 与 DataStax 结合使用的文档时,我看到写入结构的格式不同,如下所示:

insertbook(value: bookInput!, ifNotExists: Boolean, options: UpdateOptions): bookMutationResult

它后面有一个冒号和一段文字。它还明确说明了 ifNotExists: 布尔值和选项。我不知道自从 Ania 录制教程以来,DataStax 的使用方法是否发生了变化,这意味着它不再是如何使用该工具的当前演示,或者如果有这个问题的答案,我只是还没找到。

您没有提供有关如何配置 Astra DB for Ania's Netflix Clone 教程的详细信息,因此我假设您已将密钥空间命名为 netflix

您似乎没有按照说明正确操作并且错过了步骤。如果我至少跳过教程中的一个步骤,我可以复制您报告的错误。

step 5 of the tutorial 中,您需要执行以下操作:

✅ In graphQL playground, change tab to now use graphql. Edit the end of the URl to change from system to the name of your keyspace: netflix

✅ Populate HTTP HEADER variable x-cassandra-token on the bottom of the page with your token as shown below (again !! yes this is not the same tab)

切换标签页

为了插入数据,您需要切换到 graphql 选项卡。

如果您尝试在 graphql-schema 选项卡中插入数据,您将收到报告的错误。

设置键空间

您需要在 graphql 选项卡中更新 GraphQL playground 的 URI,以使用键空间名称 netflix 而不是 system。例如:

https://db_id-us-west1.apps.astra.datastax.com/api/graphql/system

更改为:

https://db_id-us-west1.apps.astra.datastax.com/api/graphql/netflix

如果您尝试将数据插入 system 键空间,您将收到报告的错误,因为该键空间中不存在 reference_list table。干杯!