从操作变量中获取类型列表

Get list of types from operation variables

我有一个操作,我想得到一个包含它的变量和类型的列表。

例如。给定操作

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 到一个包含我想要的所有信息的对象,例如 typedefaultValuerequired, name.

如果您更改模式(假设您可以在服务器上将此数据生成为这种形状),您应该能够实现此功能

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!
  ...
}