如何自定义Java GraphQL错误响应

时间:2018-09-01 19:04:30

标签: java error-handling graphql graphql-java

我正在尝试修改graphql错误响应。我想从响应中删除null属性。有可能吗?

Current response

我创建了像ExceptionWhileDataFetching这样的GraphQL异常以及我自己的过滤器客户端错误定义。效果很好,但是这里有丑陋的空属性,我想删除它们。

例如,由GraphQL docs属性扩展应该是可选的,在第二个示例屏幕上,扩展名仅是消息属性。这是我想要实现的目标,但是我找不到方法。

我发现GraphqlErrorHelper#toSpecification ..我认为足以覆盖它,并且GraphQL库无需其他操作即可处理错误属性,但是没有。

更新:

我开始考虑是否要尝试做合法的事情。.我发现我的ClientException将正确地移至getJacksonMapper().writeValueAsString中的GraphQLObjectMapper#serializeResultAsJson,并且响应有所改变。这部分对我来说有点不可思议..:(

Debug screen

1 个答案:

答案 0 :(得分:0)

好的,我终于找到解决方法了。

JacksonSerialer使用注释来附加额外的数据。

因此,如果我在@JsonInclude(JsonInclude.Include.NON_NULL)类中使用GraphQLError,那么一切都会按我的意愿进行。.

最后result I wanted