【问题标题】:Detect query type( query, mutation, subscription) in graphql-java在 graphql-java 中检测查询类型(查询、突变、订阅)
【发布时间】:2022-02-06 23:06:43
【问题描述】:

有没有办法检测查询类型querymutationsubscription,最好不执行查询。

例如:

ExecutionInput executionInput = ExecutionInput
    .newExecutionInput()
    .query("subscription Test{test}")
    .build();

是否可以检测到这是一个订阅请求? subscription Test{test} 不执行查询?

类似executionInput.isSubscription()

【问题讨论】:

    标签: java graphql-java


    【解决方案1】:

    你可以使用ParseAndValidate来解析ExecutionInput

    ParseAndValidateResult parseResult = ParseAndValidate.parse(executionInput);
            parseResult.getDocument().getDefinitionsOfType(OperationDefinition.class)
            .forEach(d->{
                System.out.println(d.getOperation());
            });
    

    这个想法是从Document(即查询解析结果)获取OperationDefinition的列表并获取它的Operation类型(一个枚举值QUERY,MUTATION,SUBSCRIPTION)来自OperationDefinition

    P.S.我用 graphql-java v17 测试

    【讨论】:

      猜你喜欢
      • 2017-08-24
      • 2018-09-17
      • 2019-11-18
      • 2019-03-22
      • 2016-01-14
      • 2021-09-09
      • 2022-01-13
      • 2020-05-05
      • 2018-11-10
      相关资源
      最近更新 更多