为了账号安全,请及时绑定邮箱和手机立即绑定

如何为微服务创建 Graphql 服务器?

如何为微服务创建 Graphql 服务器?

Go
SMILET 2023-05-08 14:34:38
我们在 Golang 和 Python 上有几个微服务,在 Golang 上我们正在编写财务操作,在 Python 在线商店逻辑上,我们想为我们的前端创建一个 API,但我们不知道如何去做。我已经阅读了 API 网关,如果 Golang 创建自己的 GraphQL 服务器,Python 将创建另一个,它们都将与第三个 graphql 服务器通信,该服务器将为前端生成 API。
查看完整描述

1 回答

?
慕标琳琳

TA贡献1830条经验 获得超9个赞

我对你们的服务了解不多,但我在不同项目中成功使用的模式就像你提到的那样GraphQL gateway

您将创建一个服务,我更喜欢在 Node.js 中创建它,来自前端的所有请求都将通过。然后GraphQL gateway你会请求你的微服务。这基本上是您进入后端系统的唯一入口点。请求将经过身份验证,您可以统一对数据的访问并执行一些性能优化,例如实施数据加载器的缓存和批处理以缓解 N+1 问题。此外,您将降低拥有多个 API 的复杂性并利用 GraphQL 的所有优势。在我的上一个项目中,我们有 7 个不同的前端,每个都使用相同的前端GraphQL gateway,我对我们的方法非常满意。肯定有一些缺点,因为您需要保持同步所有前端和GraphQL gateway,因此您需要更多地了解您的重大更改,但它可以通过例如deprecated指令并通过使用 Kubernetes 集群执行蓝/绿部署来解决。

另一种选择是在 GraphQL 中为前端创建所谓的后端。目前,我没有足够的信息了解哪种解决方案最适合您。您需要根据您的前端需求和业务领域来决定,但通常我更喜欢 GraphQL 网关,因为 GraphQL 具有很大的灵活性,并且 GraphQL 功能涵盖了将 API 定制到前端的需求。


查看完整回答
反对 回复 2023-05-08
  • 1 回答
  • 0 关注
  • 84 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信