使用自定义客户端在浏览器中发出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来完成上述操作。
答案 0 :(得分:0)
是的,您必须了解客户端的架构,才能将这些值动态包装到Sanctuary Maybe值中。 Sanctuary值可能是对象,不仅需要包装空值,还需要包装非空值。如果没有有关模式的信息,那么在值级别上是不可能的。
在运行时具有模式信息也是不理想的,因为模式可能真的很大。许多严格类型化语言执行的方式就是编译查询。在构建时,他们便有了可用的架构。 查看Elm GraphQL就是一个很好的例子。