我正在编写GraphQL查询以访问如下所示的对象:
{
"geom": { ... },
"someprop": ...,
"someotherprop": ...
}
我想转换结果,使其看起来像这样:
{
"coordinates": { ... }
"properties" {
"someprop": ...,
"someotherprop": ...
}
}
第一部分很简单:
{
coordinates: geom
}
但是我不知道如何构造“属性”对象,因为它不对应任何实际对象。如果有引用父对象的方法,我可以做:
{
coordinates: geom
properties: _parent {
someprop
someotherprop
}
}
有没有办法做类似的事情?
答案 0 :(得分:0)
GraphQL支持字段别名,这是您编写时使用的别名
coordinates: geom
根据规格:
默认情况下,响应对象中的键将使用查询的字段名称。但是,您可以通过指定别名来定义其他名称。...如果提供了别名,则字段的响应键为其别名,否则为字段名。
别名在很大程度上是必需的,因为字段接受参数,所以一个人可能会请求相同的字段,但要使用不同的参数,然后求值将得出不同的值。取回具有不同值的重复键的对象对客户端不是很有帮助,因此存在别名可以纠正这种情况。从技术上讲,它们可以用于将字段的名称任意更改为其他名称,但这不是其目的。 GraphQL本身不支持任意转换查询结果的方法-如果是必要的,则可以期望客户端在返回查询结果后这样做。