从操作变量获取类型列表

时间:2019-01-20 14:42:43

标签: graphql graphql-js

我有一个操作,我想要一个包含其变量和类型的列表。

例如。给定操作

query getResource($id: ID!, $title: String) {
  resource(id: $id, title: $title) {
     id
     title
     content
  }
}

我想得到这样的东西

[{type: "ID", required: true, name: "id"}, {type: "String", required: false, name: "title"}]

这很容易实现吗?

编辑:我想我想做的是从一个VariableDefinitionNode到一个包含我想要的所有信息的对象,例如typedefaultValue,{{1} },required

1 个答案:

答案 0 :(得分:0)

如果更改架构(假设您可以将服务器上的数据生成为这种形状),则应该能够实现此目的

type Query {
  resource ($id: ID!, $title: String): [Variable]
}

type Variable {
  type: String!
  required: Boolean!
  name: String!
  ...
}

这是一种非常通用的语法,它返回类似这样的值数组。如果您知道资源的结构,最好定义它并删除name参数,因为它变得多余。 (我正在考虑在客户端应用程序中进行查找)

type Query {
  resource ($id: ID!, $title: String): Resource
}

type Resource {
  id: Variable!
  title: Variable
  content: Variable
}

type Variable {
  type: String!
  required: Boolean!
  ...
}