登录
首页 >  Golang >  Go问答

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

来源:stackoverflow

时间:2024-04-23 09:36:31 274浏览 收藏

本篇文章向大家介绍《如何为微服务创建 Graphql 服务器?》,主要包括,具有一定的参考价值,需要的朋友可以参考一下。

问题内容

我们在 Golang 和 Python 上有几个微服务,在 Golang 上我们正在编写财务操作,在 Python 在线商店逻辑上,我们想为我们的前端创建一个 API,但我们不知道如何去做。 我读过有关 API 网关的内容,如果 Golang 创建自己的 GraphQL 服务器,Python 将创建另一个服务器,它们都将与第三个 graphql 服务器通信,该服务器将为前端生成 API,这是对的吗?


解决方案


我不太了解有关您的服务的详细信息,但我在不同项目上成功使用的伟大模式正如您提到的 GraphQL gateway 一样。

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

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

今天关于《如何为微服务创建 Graphql 服务器?》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>