🤢
GraphQL playground で "Invalid or incomplete introspection result"
GraphQLでSchemaを定義し、いざplaygroundで実行しようとしたら、以下のエラーに見舞われました。
エラー文はこんな感じ
{
"errors": [
{
"message": "Invalid or incomplete introspection result. Ensure that you are passing \"data\" property of introspection response and no \"errors\" was returned alongside: { __schema: null }.",
"stack": "Error: Invalid or incomplete introspection result. Ensure that you are passing \"data\" property of introspection response and no \"errors\" was returned alongside: { __schema: null }.\n at r (https://cdn.jsdelivr.net/npm/graphiql@1.5.16/graphiql.min.js:1:25665)\n at sr (https://cdn.jsdelivr.net/npm/graphiql@1.5.16/graphiql.min.js:1:323487)\n at https://cdn.jsdelivr.net/npm/graphiql@1.5.16/graphiql.min.js:1:542969"
}
]
}
環境は以下の通り
- golang 1.18
- github.com/99designs/gqlgen v0.17.2
- github.com/vektah/gqlparser/v2 v2.4.1
結論
Query
を定義しないと、上記のようなエラーが出るようです。
Before
# schema.graphqls
type Todo {
id: ID!
text: String!
subtext: String
done: Boolean!
user: User!
}
type User {
id: ID!
name: String!
}
input NewTodo {
text: String!
subtext: String
userId: String!
}
# Mutationのみ定義した
type Mutation {
createTodo(input: NewTodo!): Todo!
}
After
Queryを追加してあげて解決!
# schema.graphqls
type Todo {
id: ID!
text: String!
subtext: String
done: Boolean!
user: User!
}
type User {
id: ID!
name: String!
}
input NewTodo {
text: String!
subtext: String
userId: String!
}
# ##### HERE ##### #
type Query {
todos: [Todo!]!
}
# ################ #
type Mutation {
createTodo(input: NewTodo!): Todo!
}
gqlgen
でエラーが出ないので、全く気がつかずにハマりました。
ちなみに、Queryが必要ないからといって空objectにすると怒られます。
# これは×
type Query {
}
同じ悲劇が起きませんように...
Discussion