通过访问同一对象在GraphQL查询中插入中间对象

时间:2018-12-13 21:54:53

标签: graphql

我正在编写GraphQL查询以访问如下所示的对象:

{
   "geom": { ... },
   "someprop": ...,
   "someotherprop": ...
}

我想转换结果,使其看起来像这样:

{
    "coordinates": { ... }
    "properties" {
      "someprop": ...,
      "someotherprop": ...
    }
}

第一部分很简单:

{
    coordinates: geom
}

但是我不知道如何构造“属性”对象,因为它不对应任何实际对象。如果有引用父对象的方法,我可以做:

{
   coordinates: geom
   properties: _parent {
     someprop
     someotherprop
   }
}

有没有办法做类似的事情?

1 个答案:

答案 0 :(得分:0)

GraphQL支持字段别名,这是您编写时使用的别名

coordinates: geom

根据规格:

  

默认情况下,响应对象中的键将使用查询的字段名称。但是,您可以通过指定别名来定义其他名称。...如果提供了别名,则字段的响应键为其别名,否则为字段名。

别名在很大程度上是必需的,因为字段接受参数,所以一个人可能会请求相同的字段,但要使用不同的参数,然后求值将得出不同的值。取回具有不同值的重复键的对象对客户端不是很有帮助,因此存在别名可以纠正这种情况。从技术上讲,它们可以用于将字段的名称任意更改为其他名称,但这不是其目的。 GraphQL本身不支持任意转换查询结果的方法-如果是必要的,则可以期望客户端在返回查询结果后这样做。