GraphQL别名将顶层数据转换为嵌套对象

时间:2019-03-11 16:36:15

标签: graphql schema graphql-js

目前,我正在currentUser处查询city

query user {
  currentUser {
    city
  }
}

但是我的前端要求将city作为包含labelvalue的对象。

// this doesn’t work, but is the idea…
query user {
  currentUser {
    city {
      label: city
      value: city
    }
  }
}

在GraphQL查询级别上可以做到吗?

1 个答案:

答案 0 :(得分:1)

我还没有看到您的数据库模型,但是您可以使用City模型,例如:

type City {
  id: ID! @unique
  label: String
  value: String
}

然后,在您的User模型中,您可以执行以下操作:

type User {
  id: ID! @unique
  .... other User fields
  city: City
}

使用该架构,您将能够查询用户内部的城市值:

query user {
  currentUser {
    city {
      label
      value
    }
  }
}

您应该使它适应您的需求,但这是我认为您正在寻找的主要思想。