假设我有一个带有变量映射和查询的请求有效负载。 graphql-java
是否具有可用于检测有效负载中未使用的变量的现成机制?
例如:
type Query { hello : String! } # this just resolves to "hello world"
当用户在请求有效负载中以{foo: 42}
的身份发送variables
时,我想抛出一个错误(例如IllegalArgumentException
)。
编辑:也欢迎解答/评论如何在没有任何现成机制的情况下实现此功能。
答案 0 :(得分:0)
在执行查询之前,使用Parser
将查询解析为查询的对象表示形式Document
。可以通过查看查询中的OperationDefinition
来访问查询中定义的变量。 -> VariableDefinition
实例。然后将它们与请求有效负载中的变量进行比较。
作为奖励,graphql-java引擎将为每次查询执行解析并验证查询,并且此过程可能会很耗时,要避免两次解析和验证,可以使用PreparsedDocumentProvider >