graphql-java 整数作为输入
graphql-java integer as an input
我正在使用
compile group: 'com.graphql-java',
name: 'graphql-java-tools',
version: '5.2.4'
type Query {
sampleQuery(roll : Int!) : SampleResponse
}
当我尝试访问下面 java
中给出的内容时
{sampleQuery(roll : ?2){samples{roll,name}}}
它给出了 200 个成功响应而不是 400 个错误响应(因为我们试图在输入中传递无效值)。
此处,整数输入接受 ?2 or .2 or '2 or *2 or /2
等值...
为什么会接受?
我该怎么做才能验证此输入并抛出错误输入参数无效?
这是 graphQl 实现本身的问题吗?
在控制台日志中我得到了
line 2:72 token recognition error at: '?'
但我也得到了正确的回应。理想情况下,这不应 return 有效响应,因为输入本身无效。
主要问题是为什么 graphQL 不验证整数输入;而是解析输入(丢弃字符和数字)?它应该严格只接受整数值而不接受其他任何东西。
所以根据 graphql 语法,它允许(解析)附加一些字符(标记)(如 ?、~`/*...等)的整数值,但它不允许像 @、 &,$,!,{,],[| 等
因此,收到 200 成功响应,在这种情况下不会抛出错误。
我正在使用
compile group: 'com.graphql-java',
name: 'graphql-java-tools',
version: '5.2.4'
type Query {
sampleQuery(roll : Int!) : SampleResponse
}
当我尝试访问下面 java
中给出的内容时{sampleQuery(roll : ?2){samples{roll,name}}}
它给出了 200 个成功响应而不是 400 个错误响应(因为我们试图在输入中传递无效值)。
此处,整数输入接受 ?2 or .2 or '2 or *2 or /2
等值...
为什么会接受? 我该怎么做才能验证此输入并抛出错误输入参数无效? 这是 graphQl 实现本身的问题吗?
在控制台日志中我得到了
line 2:72 token recognition error at: '?'
但我也得到了正确的回应。理想情况下,这不应 return 有效响应,因为输入本身无效。
主要问题是为什么 graphQL 不验证整数输入;而是解析输入(丢弃字符和数字)?它应该严格只接受整数值而不接受其他任何东西。
所以根据 graphql 语法,它允许(解析)附加一些字符(标记)(如 ?、~`/*...等)的整数值,但它不允许像 @、 &,$,!,{,],[| 等 因此,收到 200 成功响应,在这种情况下不会抛出错误。