graphql-python / graphql-python/flask-graphql

"Decorated type deeper than introspection query" error with nested lists

未關閉
#29 1 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
主要語言
Python
星號
1.3k
分支
139
PR 合併指標
30 天內沒有已合併 PR

描述

We see the following errors when using nested lists:
```
Error: Decorated type deeper than introspection query.
at n (http://cdn.jsdelivr.net/graphiql/0.7.1/graphiql.min.js:15:23637)
at n (http://cdn.jsdelivr.net/graphiql/0.7.1/graphiql.min.js:15:23879)
at n (http://cdn.jsdelivr.net/graphiql/0.7.1/graphiql.min.js:15:23733)
at n (http://cdn.jsdelivr.net/graphiql/0.7.1/graphiql.min.js:15:23879)
at r (http://cdn.jsdelivr.net/graphiql/0.7.1/graphiql.min.js:15:24425)
at http://cdn.jsdelivr.net/graphiql/0.7.1/graphiql.min.js:15:26609
at http://cdn.jsdelivr.net/graphiql/0.7.1/graphiql.min.js:11:8480
at Array.reduce (native)
at keyValMap (http://cdn.jsdelivr.net/graphiql/0.7.1/graphiql.min.js:11:8444)
at f (http://cdn.jsdelivr.net/graphiql/0.7.1/graphiql.min.js:15:26484)
```
Here's the example code that can cause this issue. Graphene introspection doesn't report any errors.
```
import graphene, json

class Animal(graphene.Interface):
id = graphene.String()

class Dog(graphene.ObjectType):
class Meta:
interfaces = (Animal, )
breed = graphene.String()

class Cat(graphene.ObjectType):
class Meta:
interfaces = (Animal, )
category = graphene.String()

class Query(graphene.ObjectType):
animals = graphene.NonNull(graphene.List(graphene.NonNull(graphene.List(graphene.NonNull(Animal)))))
def resolve_animals(self, args, context, info):
return[[Dog(id=1, breed='Golden Retriever'),
Dog(id=2, breed='German Shepard')],
[Cat(id=11, category ='Tiger'),
Cat(id=12, category='House Cat')]]

schema = graphene.Schema(query=Query, types=[Dog, Cat, ])
```
Errors disappear if we remove the "required" or NonNull decorators. Any suggestions on how to fix these errors?

貢獻指南

這個儲存庫沒有索引到貢獻指南

研究方向

Start with the nested Query.animals schema and its resolve_animals example, then reproduce the failure through GraphiQL 0.7.1 while inspecting the introspection response. Compare the nested NonNull/list case with the versions that remove NonNull; done means the schema introspects and GraphiQL no longer reports the decorated-type error.

由索引模型根據 Issue 內容生成。

評估

技術堆疊
flask, graphql, python
領域
api, backend
Issue 類型
缺陷
難度
4/5
預估耗時
3-5 天
活躍度
停滯
描述清晰度
基本清楚
新手友好度
35/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。