如何通过 GraphQL 查询包含非空字段的可空数据?
Posted
技术标签:
【中文标题】如何通过 GraphQL 查询包含非空字段的可空数据?【英文标题】:How to Query nullable data that contains non-null fields via GraphQL? 【发布时间】:2018-12-03 10:27:20 【问题描述】:假设我的数据结构如下:
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 后端)抱怨说,当我尝试此查询时,我试图为非 null city.id
返回 null。这特别发生在没有邻域(也没有城市)的房屋中,因此当它实际上不应该深入到数据结构中时,它会尝试将 city.id 返回为空,因为父邻域为空。
我试图在可用时获取有效的社区详细信息(包括城市),在不可用时获取null
社区。什么是合适的方法?
【问题讨论】:
【参考方案1】:我不得不处理数据库中的数据的问题。上面的查询按预期工作,但我有一些损坏的数据导致查询无法成功完成。
我能够使用 https://github.com/graphql/graphiql 进行调试,这让我可以快速连续地进行 GQL 查询,帮助我准确地探查是什么数据字段触发了我的错误。
【讨论】:
以上是关于如何通过 GraphQL 查询包含非空字段的可空数据?的主要内容,如果未能解决你的问题,请参考以下文章
Firebase,Swift:返回类型上的可空性说明符冲突,“可空”与现有说明符“非空”冲突