使用自定义客户端在浏览器中发出graphQL请求,我想构建一个自定义解析器。我想对可为空的字段类型使用Sanctuary.js可能类型。我需要知道的是,客户端如何知道某个字段是可空的还是自动为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,也许是可空字段的类型。解析器需要知道某个字段是定义为可空类型还是非可空类型。我可以处理Sanctuary.js部分,但我不确定如何使用GraphQL.js来完成上面的工作。
发布于 2019-07-17 01:43:23
是的,您必须知道客户端的模式,以便动态地将这些值包装到Sanctuary可能值中。避难所可能值是对象,不仅需要包装空值,还需要包装非空值。如果没有关于模式的信息,这在值级别上是不可能的。
在运行时拥有模式信息也不理想,因为模式可能真的很大。许多严格类型的语言这样做的方式是编译查询。在构建时,他们就有了可用的模式。请查看Elm GraphQL以获得一个很好的示例。
https://stackoverflow.com/questions/57049288
复制相似问题