我想验证用户在变异期间提供的输入,如果提供了一些无效字段则提供错误。
有一个问题可以回答GraphQL-JS here
的问题我想问一下使用GraphQL-Java实现这个问题。
我们假设您有一个将数据发布到API服务器的表单。 API服务器验证输入并返回JSON对象。如果输入无效,则返回如下所示的错误对象。
{errors: {field1: "is required"}}
使用GraphQL时,我们如何处理和提供这些错误?应该如何以及在何处实施数据验证(应该是GraphQL的一部分还是应该在每个解析函数中)?
答案 0 :(得分:2)
graphql-java实现有一个类,用于检查查询是否无效(即graphql.validation.Validatior
)。这样,您可以在执行查询字符串之前验证它们。
如果查询无效,您可以创建一个方法,将List<ValidationError>
作为生成错误响应的参数。
示例:
List<ValidationError> errors = validator.validateDocument(graphQLSchema, requestString);
if (!errors.isEmpty()) { return executeError(errors); }