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



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

我对您的服务不太了解,但我在不同项目中成功使用的伟大模式是您提到的GraphQL gateway

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

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

最新更新