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

时间:2018-06-24 19:46:41

标签: graphql react-apollo graphene-python

假设我的数据结构如下:

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(反应式Apollo前端,Graphene + Django后端)抱怨说,当我尝试此查询时,我试图为非null city.id返回null。这是专门针对没有邻域(又没有城市)的房屋而发生的,因此,由于父邻域为空,当它实际上不应该深入数据结构时,它将尝试将city.id返回为null。

我正在尝试获取有效的邻居详细信息(包括城市)(如果可用),以及null可用的邻居详细信息(如果没有)。对此合适的方法是什么?

1 个答案:

答案 0 :(得分:0)

我不得不处理数据库中数据的问题。上面的查询可以正常运行,但是我有一些损坏的数据使查询无法成功完成。

我能够使用https://github.com/graphql/graphiql进行调试,这使我能够快速连续地进行GQL查询,从而帮助我准确地找出触发错误的数据字段。