2016-11-30 67 views
2

我想验证突变期间用户提供的输入,然后在提供一些无效字段时提供错误。从GrapQL-Java返回错误

有,回答我想问关于使用GraphQL Java实现了这个问题的GraphQL-JS here

问题的问题。

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

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

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

回答

2

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

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

例子:

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

刚一说明。任何有效的GraphQL实现(包含graphql-java)将自行验证每个查询,并且无效查询永远不会触发执行。问题只在于如何自定义错误处理行为。 – kaqqao