首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >graphql-java整数作为输入

graphql-java整数作为输入
EN

Stack Overflow用户
提问于 2021-01-05 07:47:40
回答 1查看 363关注 0票数 0

我在用

代码语言:javascript
复制
compile group: 'com.graphql-java', 
name: 'graphql-java-tools', 
version: '5.2.4'

type Query {
sampleQuery(roll : Int!) : SampleResponse
}

当我试图访问它时,请用java提供如下所示

代码语言:javascript
复制
{sampleQuery(roll : ?2){samples{roll,name}}}

它提供200个成功响应,而不是400个错误响应(因为我们试图在输入中传递无效值)。

在这里,整数输入接受像?2 or .2 or '2 or *2 or /2等.

它为什么要接受它?我能做些什么来验证这个输入和抛出错误,说无效的输入param?这是graphQl实现本身的问题吗?

在我得到的控制台日志中

代码语言:javascript
复制
line 2:72 token recognition error at: '?'

但我也得到了正确的回应。理想情况下,这不应该返回有效的响应,因为输入本身是无效的。

主要问题是为什么graphQL不验证整数输入,而是解析输入(将字符与数字一起丢弃)?它应该严格地只接受整数值,而不接受其他任何内容。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-08 12:03:27

因此,根据graphql语法,它允许(解析)带有一些字符(例如?,~`/*.等)的整数值,但它不允许像@、&、$、!、{、]、[、]等标点符号。因此,接收到200个成功响应,在这种情况下不会抛出错误。

参考: https://spec.graphql.org/draft/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65574899

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档