我试图了解GraphQL在微服务体系结构中最适合使用的地方。
关于仅使用1个GraphQL模式作为API网关将请求代理到目标微服务并强制其响应的问题,存在一些争论。微服务仍将使用REST / Thrift协议进行通信。
相反,另一种方法是每个微服务具有多个GraphQL模式。拥有一个较小的API网关服务器,该服务器使用请求的所有信息+ GraphQL查询将请求路由到目标微服务。
第一种方法
具有1个GraphQL架构作为API网关将具有一个缺点,即每次您更改微服务合同的输入/输出时,我们都必须在API网关侧相应地更改GraphQL架构。
第二种方法
如果每个微服务使用多个GraphQL架构,则以某种方式有意义,因为GraphQL会强制执行架构定义,并且使用者将需要尊重微服务提供的输入/输出。
问题
您是否认为GraphQL适合设计微服务架构?
您如何设计具有可能的GraphQL实现的API网关?