GraphQL を使用してデータベースからデータを取得しています。と の 2 種類がありGroup
ますPerson
。グループには、オブジェクトpeople
のリストであるフィールドがありPerson
ます。
GraphQL の組み込みのintrospectionを使用して、サーバーからスキーマを取得しようとしています。私が抱えている問題は、people
フィールドがnull不可の型をラップするリスト型をラップするnull不可の型であり、この冗長なクエリを使用する必要があることです。
{
__type(name: "Group") {
name
fields {
name
type {
name
kind
ofType {
kind
name
ofType {
kind
name
ofType {
kind
name
ofType {
kind
name
}
}
}
}
}
}
}
}
このスキーマを取得するには:
{
"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
}
}
}
}
}
]
}
}
}
不便で読みにくいクエリであることに加えて、それは一般的ではありません。それを構築するには、スキーマ内のラッパー型の最大深度を知る必要があります。
深さに関係なく、スキーマ内のすべてのラッパー タイプを取得する方法はありますか?