Meteor 方法与 GraphQL 突变

Meteor Methods vs. GraphQL Mutations

我有一个现有的代码库,它使用 Meteor 方法从客户端接收请求并在服务器上执行数据库操作。我想尝试将这个项目转移到 GraphQL,但我无法理解这项工作的范围,尤其是这对这些 Meteor 方法意味着什么。

A) GraphQL 是否取代了 Meteor 方法?所以我会在 GraphQL 查询、解析器和变更中重新实现这个逻辑?

B) GraphQL 是否与 Meteor 方法串联?即,客户端调用 Meteor 方法,该方法内部调用服务器上的一个或多个突变?

C) GraphQL 是否与 Meteor 方法并行 并具有明显的关注点分离?即,所有数据库操作都被卸载到客户端突变调用,但所有其他过程(例如发送电子邮件和其他工作)仍然在 Meteor 方法中发生。

希望找到有关此主题的一些说明。谢谢!

答案是:三者都可以,但你应该做出决定并坚持下去。

我个人使用 Meteor 方法从 client/validating 方法输入中隐藏代码。从这个意义上说,当我切换到 graphQL 时,我完全 "replaced" meteor 方法和 meteor 的 DPP 模型。

但是,没有什么能阻止您在 GraphQL 解析器内部调用流星方法。没有真正的理由这样做,因为解析器是服务器端的。

然而,保存 Meteor 方法来处理需要验证的高度可变结构(例如 XML 文件)的数据可能很诱人,但不能给出 "exact" GraphQL 查询和修改器所需的结构。所以从这个意义上说,这两个可以 "work together" 因为 Meteor 方法没有那么严格。

就是说,使用 GraphQL 方法带来了一大堆仅使用 meteor 方法无法获得的好处,例如缓存规范化、过滤数据并仅检索您想要检索的内容的能力,以及订阅。