从 GraphQL 返回错误-Java

Returning error from GrapQL-Java

我想在更改期间验证用户提供的输入,然后在提供了一些无效字段时提供错误。

有一个问题回答了 GraphQL-JS 的问题

我想问这个关于使用 GraphQL 实现的问题-Java。

假设您有一个将数据发布到 API 服务器的表单。 API 服务器验证输入和 returns JSON 对象。如果输入无效,将返回如下所示的错误对象。

{errors: {field1: "is required"}}

在使用 GraphQL 时,我们如何处理和提供此类错误?应该如何以及在何处实施数据验证(应该是 GraphQL 的一部分还是应该在每个解析函数中)?

graphql-java 实现有一个 class 用于检查查询是否无效(即 graphql.validation.Validatior)。这样你就可以在执行它们之前验证你的查询字符串。

如果查询无效,您可以创建一个将 List<ValidationError> 作为生成错误响应的参数的方法。

示例:

List<ValidationError> errors = validator.validateDocument(graphQLSchema, requestString);
if (!errors.isEmpty()) { return executeError(errors); }