小编Lou*_*ise的帖子

使用解析器时如何在graphql-spring-boot中引发多个验证错误?

我正在使用 graphql-spring-boot 库,并使用解析器对象来解析输入查询的值。

下面是一个例子:

@Component
public class BookResolver implements GraphQLQueryResolver {

    @Autowired
    private BookImpl bookImpl;

    @Autowired
    private GraphqlValidator validator;

    public GetBookOutput getBooks(GetBookQuery getBookQuery) {  

        validator.validateBookInputQuery(getBookQuery);

        GetBookOutput output = bookImpl.getBook(getBookQuery)

        return output;
    }
}
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,我想验证 getBookQuery,并在发送到客户端的响应中引发自定义错误。输入 getBookQuery 类型包含一串数字。

下面是我如何实现 GraphqlValidator 类:

@Component
public class GraphqlValidator {

    private static final String BOOK_NUMBER_REGEX = " *[0-9]+( *, *[0-9]+)* *";

    public void validateBookInputQuery(GetBookInputQuery getBookInputQuery) {
        String bookNumber = getBookInputQuery.getBookNumber();

        if (!isValidValueForRefVal(bookNumber, BOOK_NUMBER_REGEX)) {
            throw new GraphqlInvalidFieldException("Input type getBookInputQuery Invalid", "bookNumber", bookNumber);
        }
    }
} …
Run Code Online (Sandbox Code Playgroud)

validation error-handling graphql graphql-java

7
推荐指数
1
解决办法
2248
查看次数