在自定义客户端解析器中检查查询或突变字段的类型

时间:2019-07-16 02:25:42

标签: graphql graphql-js

使用自定义客户端在浏览器中发出graphQL请求,我想构建一个自定义解析器。我想将Sanctuary.js也许类型用于Nullable字段类型。我需要知道的是客户端如何自动知道某个字段是Nullable还是NonNullable。我是否需要访问客户端中的架构才能进行处理?

function myCustomParser (data, ...otherArgs) {
  // ...custom parsing on a field level
};

fetch ('/graphql', {
  method: 'post'
  body: JSON.stringify({ query, variables }),
}).then (res => res.json ()).then (data => {
  return myCustomParser (data);
});

我想返回Sanctuary.js也许是可空字段的类型。解析器需要知道某个字段是定义为Nullable还是Non Nullable类型。我可以处理Sanctuary.js部分,但我不确定如何使用GraphQL.js来完成上述操作。

1 个答案:

答案 0 :(得分:0)

是的,您必须了解客户端的架构,才能将这些值动态包装到Sanctuary Maybe值中。 Sanctuary值可能是对象,不仅需要包装空值,还需要包装非空值。如果没有有关模式的信息,那么在值级别上是不可能的。

在运行时具有模式信息也是不理想的,因为模式可能真的很大。许多严格类型化语言执行的方式就是编译查询。在构建时,他们便有了可用的架构。 查看Elm GraphQL就是一个很好的例子。