Я получаю данные из базы данных через GraphQL. Есть два типа: Group
и Person
. В группах есть поле people
, которое представляет собой список Person
объектов.
Я пытаюсь получить схему с сервера, используя встроенную интроспекцию GraphQL. Проблема, с которой я столкнулся, заключается в том, что поле people
является типом, не допускающим значения NULL, который обертывает тип списка, обертывающий тип, не допускающий значения NULL, и мне нужно использовать этот многословный запрос:
{
__type(name: "Group") {
name
fields {
name
type {
name
kind
ofType {
kind
name
ofType {
kind
name
ofType {
kind
name
ofType {
kind
name
}
}
}
}
}
}
}
}
Чтобы получить это schema:
{
"data": {
"__type": {
"name": "Group",
"fields": [
{
"name": "people",
"type": {
"name": null,
"kind": "NON_NULL",
"ofType": {
"kind": "LIST",
"name": null,
"ofType": {
"kind": "NON_NULL",
"name": null,
"ofType": {
"kind": "OBJECT",
"name": "Person",
"ofType": null
}
}
}
}
}
]
}
}
}
Помимо того, что это неудобный и трудный для чтения запрос, это не общий c, и мне нужно было бы знать максимальную глубину типов оболочки в схеме, чтобы построить его.
Есть ли способ получить в схеме все типы оболочки, независимо от глубины?