如何通过 GraphQL 查询包含非空字段的可空数据?

How to Query nullable data that contains non-null fields via GraphQL?

假设我的数据结构如下:

house: {
    id: Int,
    address: String,
    neighborhood (Foreign Key, Nullable): {
        id: Int,
        name: String,
        city (Foreign Key, Nonnull): {
            id: Int (Nonnull)
            name: String
        }
    }
}

我正在构建以下查询:

{
    homes {
        house {
            id
            address
            neighborhood {
                id
                name
                city {
                    id
                    name
                }
            }
        }
    }
}

GraphQL(React Apollo 前端,Graphene + Django 后端)抱怨说当我尝试此查询时,我正在尝试 return null for non-null city.id。这种情况专门发生在没有社区的房子(反过来也没有城市),所以它试图 return city.id as null 当它实际上不应该深入数据结构时,因为父邻域为空。

我试图在可用时获取有效的社区详细信息(包括城市),在不可用时获取 null 社区。什么是合适的方法?

我遇到的问题是处理数据库中的数据。上面的查询按预期工作,但我有一些损坏的数据导致查询无法成功完成。

我能够使用 https://github.com/graphql/graphiql 进行调试,这让我可以快速连续地进行 GQL 查询,帮助我准确地探查是什么数据字段触发了我的错误。