端到端流程中有多个 GraphQL "hops"?

Multiple GraphQL "hops" in end-to-end flow?

我正在开发一个企业级系统,我想了解我的想法是否非常低效。

我们公司正在寻求使用 GraphQL,我们希望将其用作协助前端客户端检索数据的一种方式,同时也将其用作对我们原始数据的数据抽象。我的意思是:

我知道可能会出现这个问题:"Why don't you have GraphQL over the domain services, and GraphQL over the data, but then federate those into a gateway and have clients pull from there!"但是我们公司坚持的租户之一是必须对我们的数据进行抽象。因此,我们要么通过 REST API 抽象该数据(我们现在这样做),要么我们对数据使用 GraphQL 并充当抽象。

鉴于 "data abstraction" 要求,我想了解端到端流程中的两个 "hops"/GraphQL 实例是否存在任何问题?

这是一个常见的模式。我们将其用于我们的后端服务,它在域层接收 graphql,然后将 prisma 用于数据层。

根据我们的经验,我有两个建议。

  • 尽可能尝试使用特定语言的工具自动生成您的解析器和数据API。
  • 对域层进行测试以确保数据层中的任何内容都不会漏掉。执行简单的 "pass through" 请求很诱人,因为这两个模式通常会同步开始,并且您可能会不小心将不想发送给客户端的数据传递给客户端。

(不要脸的外挂!)第二个,Meeshkan does this sort of testing in an automated fashion, and there are plenty of testing frameworks you can use to execute hand-written tests as well (ie cucumber.