GraphQL 查询分析是不是仅指查询?

Posted

技术标签:

【中文标题】GraphQL 查询分析是不是仅指查询?【英文标题】:Does GraphQL Query Analysis only refer to Queries?GraphQL 查询分析是否仅指查询? 【发布时间】:2020-05-30 19:46:43 【问题描述】:

GraphQL 相关资源解释了如何进行查询分析以保护 GraphQL 端点。正在使用的一些方法是查询深度分析、查询复杂性分析等。我的问题是,查询分析是否只涉及查询?突变和订阅呢?或者当我们谈论查询分析时,是否包括所有 3 个(查询、变异、订阅)?

【问题讨论】:

【参考方案1】:

Apollo Tracing 是查询分析工具之一,根据我在graphql-java 中使用的内容,它可以用于所有查询、变异和订阅。所以,我相信查询分析这个词可以适用于所有这些。

毕竟,它们在 GraphQL 引擎内部的处理方式几乎与规范所定义的相同。在Execution Operation 部分,您可以看到Query 和Mutation 具有相同的执行逻辑。唯一的区别是Query 允许并行执行,而mutation 只能串行执行。

然后在订阅响应流section中提到:

ExecuteSubscriptionEvent() 算法有意类似于 ExecuteQuery() 因为这是每个事件结果的产生方式。

也就是说最后,它的执行逻辑和Query一样。

【讨论】:

以上是关于GraphQL 查询分析是不是仅指查询?的主要内容,如果未能解决你的问题,请参考以下文章

GraphQL 操作名称是不是会改变查询行为?

GraphQL graph.cool 用户查询不适用于 Auth0 令牌

用 Python 在 Graph 中查询以太坊数据

如何发送包含扩展查询的 graphQL 查询?

GraphQL 浅谈,从理解 Graph 开始

如何在 JavaScript 中进行简单的 GraphQL 查询