[英]Detect query type( query, mutation, subscription) in graphql-java
Is there a way to detect the query type query
, mutation
or subscription
, preferably without executing the query.有没有办法检测查询类型
query
、 mutation
或subscription
,最好不执行查询。
For example:例如:
ExecutionInput executionInput = ExecutionInput
.newExecutionInput()
.query("subscription Test{test}")
.build();
Is it possible to detect that this is a subscription request?是否可以检测到这是一个订阅请求?
subscription Test{test}
without executing the query? subscription Test{test}
而不执行查询?
Something like executionInput.isSubscription()
类似
executionInput.isSubscription()
You can use ParseAndValidate
to parse the ExecutionInput
:您可以使用
ParseAndValidate
解析ExecutionInput
:
ParseAndValidateResult parseResult = ParseAndValidate.parse(executionInput);
parseResult.getDocument().getDefinitionsOfType(OperationDefinition.class)
.forEach(d->{
System.out.println(d.getOperation());
});
The idea is to get the list of the OperationDefinition
from Document
(ie query parsing result) and get its Operation
type (an enum which has value QUERY
, MUTATION
, SUBSCRIPTION
) from OperationDefinition
.这个想法是从
Document
获取OperationDefinition
的列表(即查询解析结果),并从OperationDefinition
获取其Operation
类型(具有值QUERY
、 MUTATION
、 SUBSCRIPTION
的枚举)。
PS I test with graphql-java v17 PS我用graphql-java v17测试
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.