【发布时间】:2019-02-07 10:06:27
【问题描述】:
我正在尝试修改 graphql 错误响应。我想从响应中删除空属性。有可能吗?
我创建了我的 GraphQL 异常,例如 ExceptionWhileDataFetching 和我自己的过滤器客户端错误定义。它工作得很好,但丑陋的空属性在这里,我想删除它们。
例如GraphQL docs 属性扩展应该是可选的,并且在第二个示例屏幕上只有消息属性。这是我想要实现的目标,但我不知道如何实现..
我找到了 GraphqlErrorHelper#toSpecification.. 我认为覆盖它就足够了,GraphQL 库将在没有其他操作的情况下处理错误属性,但它没有..
更新:
我开始考虑是否要尝试做合法的事情.. 我发现我的 ClientException 将正确转到 GraphQLObjectMapper#serializeResultAsJson 中的 getJacksonMapper().writeValueAsString 并且这里的响应以某种方式改变了.. 这部分对于我.. :(
【问题讨论】:
-
重写filterGraphQLErrors方法并删除空值属性是否不起作用?
-
我不确定如何实现这一点。在
filterGraphQLErrors我应该只选择我想看到的错误,而不是改变它们的结构,对吧?我尝试调试它,但是当例如MyException#getPath被调用时,它来自大量的调用,我无法找出响应创建的确切位置以及这些该死的nulls是如何分配给响应的。
标签: java error-handling graphql graphql-java