我正在使用 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)