3kt*_*3kt 6 apollo graphql grandstack
我有以下架构:
type Post {
id: ID!
text: String
}
Run Code Online (Sandbox Code Playgroud)
我正在使用自动生成的突变neo4j-graphql.js,因此我可以访问以下突变:
UpdatePost(
id: ID!
text: String
): Post
Run Code Online (Sandbox Code Playgroud)
问题:
当我使用以下查询时:
mutation update($id: String, $text: String) {
UpdatePost(id: $id, text: $text) {
id
text
}
}
Run Code Online (Sandbox Code Playgroud)
具有以下参数:
{
"id": "a19289b3-a191-46e2-9912-5a3d1b067cb2",
"text": "text"
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
{
"error": {
"errors": [
{
"message": "Variable \"$id\" of type \"String\" used in position expecting type \"ID!\".",
"locations": [
{
"line": 1,
"column": 17
},
{
"line": 2,
"column": 18
}
],
"extensions": {
"code": "GRAPHQL_VALIDATION_FAILED"
}
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法将我的字符串 ID 转换为实际的 ID 类型?或者完全避免这个错误?
您看到的错误与查询变量定义中指定的变量类型有关。它与变量的值无关(这似乎是正确的)。根据错误消息,$id变量的类型为String,而不是ID您粘贴的查询中显示的类型。
无论如何,因为参数的类型id($id使用变量的地方)是ID!,而不是ID,所以变量的类型也应该是ID!。
指示!非空(必需)类型。换句话说,id必须始终提供参数,并且不能为其指定 value null。传递参数的任何变量也必须为非空。如果变量的类型是ID而不是ID!,我们告诉 GraphQL 该变量可能被省略或有一个null值,这与使用它的参数不兼容。
请注意,反之则不然:如果参数的类型是ID,则ID或ID!变量将是有效的。
| 归档时间: |
|
| 查看次数: |
10266 次 |
| 最近记录: |