如果graphql查询架构是这样的:
user(user_id: Int): User
如果在查询中运行查询时,阿波罗会运行解析器吗?
我想在解析器中迭代参数,但是不确定是否有可能污染它们。
P.S。如果有关于如何进行阿波罗解析参数的文档,将不胜感激。
答案 0 :(得分:1)
在GraphQL中,模式定义客户端可以使用哪些字段,包括哪些参数可用于该字段以及这些参数的类型。提交给GraphQL服务的任何查询都将在执行之前先进行验证。如果查询中包含任何无关的参数,它将无法通过验证并且不会执行。规范中here对此进行了解释:
正式规格
- 对于文档中的每个参数
- 让argumentsName为参数名称。
- 让argumentsDefinition为父字段或名为argumentsName的定义提供的参数定义。
- argumentDefinition必须存在。
说明文字
提供给字段或指令的每个参数都必须在该字段或指令的可能参数集中进行定义。
为了更好地了解GraphQL的工作原理,建议您至少对规范进行粗略的了解。