端到端流中的多个 GraphQL “跃点”?
Posted
技术标签:
【中文标题】端到端流中的多个 GraphQL “跃点”?【英文标题】:Multiple GraphQL "hops" in end-to-end flow? 【发布时间】:2020-10-07 09:10:19 【问题描述】:我正在研究一个企业级系统,并试图了解我的想法是否超级低效。
我们公司正在寻求使用 GraphQL,我们希望将其用作帮助前端客户端检索数据的一种方式,同时也用作对原始数据的数据抽象。我的意思是:
如果我们将 GraphQL 作为一个实例更靠近客户端(该 GraphQL 服务器将位于我们的域 REST 服务之前),但是我们也让 GraphQL 位于数据层之上,这样做提出任何问题?我知道可能会出现这样的问题:“为什么不在域服务上使用 GraphQL,在数据上使用 GraphQL,然后将它们联合到网关中并让客户端从那里拉取!”但我们公司坚持的租户之一是必须对我们的数据进行抽象。因此,我们要么通过 REST API(我们现在就这样做)抽象数据,要么在数据上使用 GraphQL 并充当抽象。
因此,鉴于“数据抽象”要求,我想了解端到端流程中 GraphQL 的两个“跃点”/实例是否存在任何问题?
【问题讨论】:
【参考方案1】:这是一种常见的模式。我们将它用于后端服务,它在域层接收 graphql,然后将prisma 用于数据层。
根据我们的经验,我有两个建议。
尽量使用特定语言的工具自动生成解析器和数据 API。 针对域层进行测试,以确保数据层中没有任何东西漏掉。执行简单的“通过”请求会很诱人,因为这两个架构通常会在开始时同步,并且您可能会意外地通过不希望发送给客户端的数据。(无耻的插件!)对于第二个,Meeshkan 以自动化方式进行此类测试,并且您也可以使用许多测试框架来执行手写测试(即cucumber。
【讨论】:
以上是关于端到端流中的多个 GraphQL “跃点”?的主要内容,如果未能解决你的问题,请参考以下文章