gpt4 book ai didi

java - GraphQL java : Throwing exceptions when request has unused variables

转载 作者:行者123 更新时间:2023-12-05 07:29:19 25 4
gpt4 key购买 nike

假设我有一个带有变量映射和查询的请求负载。 graphql-java 是否有任何开箱即用的机制可用于检测有效负载中未使用的变量?

例如:

type Query { hello : String! } # this just resolves to "hello world"

当用户在请求负载中发送 {foo: 42} 作为 variables 时,我想抛出一个错误(比如 IllegalArgumentException).

编辑:也欢迎回答/评论如何在没有任何开箱即用机制的情况下实现这一点。

最佳答案

在执行查询之前,使用Parser将查询解析为Document,它是查询的对象表示。查询中定义的变量可以通过查找来访问它的 OperationDefinition --> VariableDefinition 实例。然后将它们与请求负载中的变量进行比较。

作为奖励,由于 graphql-java 引擎将为每次查询执行解析和验证查询,这个过程可能会有些耗时,为了避免解析和验证两次,您可以使用 PreparsedDocumentProvider

关于java - GraphQL java : Throwing exceptions when request has unused variables,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52834550/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com