从 GraphQL-Java 返回错误

Mau*_*eji 5 java error-handling graphql graphql-java

我想验证用户在突变期间提供的输入,然后如果提供了一些无效字段则提供错误。

有一个问题可以在这里回答 GraphQL-JS 的问题

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

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

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

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

Sab*_*lex 2

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

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

例子:

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

  • 只是一个注释。任何有效的 GraphQL 实现(包括 graphql-java)都会自行验证每个查询,并且无效的查询永远不会触发执行。问题只是如何可定制错误处理行为。 (2认同)