Graphql 使用指令进行输入验证
我目前正在使用GraphQL在服务器上工作,我一直在用指令实现输入验证。我试图做的是向输入类型添加指令,允许我在将输入传递给实际的数据获取程序之前验证给定的输入。 模式:Graphql 使用指令进行输入验证,graphql,graphql-java,Graphql,Graphql Java,我目前正在使用GraphQL在服务器上工作,我一直在用指令实现输入验证。我试图做的是向输入类型添加指令,允许我在将输入传递给实际的数据获取程序之前验证给定的输入。 模式: 我已经完成了连接和模式构建部分,变异是有效的,但我在实现模式时遇到了问题,模式允许我验证电子邮件(例如:电子邮件必须包含“@gmail.com”)。通过指令进行输入验证是不可行的。我建议用两种方法来解决这个问题 没有外部库-解析器负责验证 这是最基本的解决办法。数据获取程序(解析器)必须返回DataFetchErrorResu
我已经完成了连接和模式构建部分,变异是有效的,但我在实现模式时遇到了问题,模式允许我验证电子邮件(例如:电子邮件必须包含“@gmail.com”)。通过指令进行输入验证是不可行的。我建议用两种方法来解决这个问题 没有外部库-解析器负责验证 这是最基本的解决办法。数据获取程序(解析器)必须返回DataFetchErrorResult,该结果可能包含一个或多个GraphQLError。在数据获取程序中,您可以实现验证,填充DataFetcherResult GraphQLError,如果没有发现错误,则执行变异 这可以通过使用POJO映射GraphQL输入对象来改进,就像graphl java工具所做的那样,并在处理输入之前使用javax注释和验证器来验证输入 使用GraphQL Java扩展验证库- 这个库可以满足您的需要,并为您提供一些基本指令和相关约束。请注意,该库是非常新的(在嵌套输入验证方面存在一些bug)
directive @email on INPUT_FIELD_DEFINITION
type Mutation {
getAccounts(filter: InutAccount): [Account]
}
input InputAccount{
email: String @email
}