如何使用 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。干杯!
我正在尝试关注这个 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 fromsystem
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。干杯!