首页 > 解决方案 > 如何通过 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 后端)抱怨我在city.id尝试此查询时试图为非 null 返回 null。这特别发生在没有邻域(也没有城市)的房屋中,因此当它实际上不应该深入到数据结构中时,它会尝试将 city.id 返回为空,因为父邻域为空。

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

标签: graphqlreact-apollographene-python

解决方案


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

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


推荐阅读