编写 GraphQL 查询

Composing GraphQL queries

假设 GraphQL 模式支持以下查询:

{
    person(id: String) {
        locationId
    }
}

{
    location(id: String) {
        country
    }
}

是否可以通过 id 找到一个 person,然后使用结果 locationid 通过 id 找到他们的 location(返回 country 对应于那个 location) 所有在一个查询中?

或者我必须进行两个单独的查询吗?

如果这是您可以从 person 获得的有关 location 的唯一信息,那么是的,您将需要在单独的请求中执行两个查询。

对于 GraphQL 模式来说,将整个 location 节点呈现为从 person 可见(即,id 将被取消引用,尽管可能仍然可用),这将是更正常的,如果一个person 可能有多个 location,那么您将沿着 locations 边到达每个 location 节点。

查询将如下所示;

{
    person(id: string){
        location{
            country
        }
    }
}

在您的人员类型中,您可以将解析器应用于 location 字段,该字段根据执行查询的人员的 locationId 获取位置。