GraphQL 将顶级数据别名为嵌套对象

GraphQL alias top-level data into a nested object

目前我正在 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 查询级别执行此操作?

我还没有看到你的数据库模型,但你可以有一个 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
    }
  }
}

您应该根据自己的需要进行调整,但我认为这是您正在寻找的主要思想。