【问题标题】:Multiple GraphQL "hops" in end-to-end flow?端到端流中的多个 GraphQL “跃点”?
【发布时间】:2020-10-07 09:10:19
【问题描述】:

我正在研究一个企业级系统,并试图了解我的想法是否超级低效。

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

  • 如果我们将 GraphQL 作为一个实例更靠近客户端(该 GraphQL 服务器将位于我们的域 REST 服务之前),但是我们让 GraphQL 位于数据层之上,这样做提出任何问题?

我知道可能会出现这样的问题:“为什么不在域服务上使用 GraphQL,在数据上使用 GraphQL,然后将它们联合到网关中并让客户端从那里拉取!”但我们公司坚持的租户之一是必须对我们的数据进行抽象。因此,我们要么通过 REST API(我们现在就这样做)抽象数据,要么在数据上使用 GraphQL 并充当抽象。

因此,鉴于“数据抽象”要求,我想了解端到端流程中 GraphQL 的两个“跃点”/实例是否存在任何问题?

【问题讨论】:

    标签: rest graphql microservices


    【解决方案1】:

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

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

    • 尽量使用特定语言的工具自动生成解析器和数据 API。
    • 针对域层进行测试,以确保数据层中没有任何东西漏掉。执行简单的“通过”请求会很诱人,因为这两个架构通常会在开始时同步,并且您可能会意外地通过不希望发送给客户端的数据。

    (无耻的插件!)对于第二个,Meeshkan 以自动化方式进行此类测试,并且您也可以使用许多测试框架来执行手写测试(即cucumber

    【讨论】:

      猜你喜欢
      • 2020-10-06
      • 2021-11-14
      • 1970-01-01
      • 2017-02-05
      • 2020-09-03
      • 1970-01-01
      • 2021-05-04
      • 1970-01-01
      • 2016-03-24
      相关资源
      最近更新 更多