【发布时间】:2020-11-19 10:42:20
【问题描述】:
我有一个带有一些服务的微服务应用程序。我正计划为应用程序实现 GraphQL。
我想到的一种方法是首先在每个服务中实现一层 API。然后,GraphQL 解析器将向服务的 API 端点发出请求并返回它们。这种方法对我来说似乎很简洁,因为我的前端只有一个 GraphQL 端点可以工作。
不过,与此同时,我不确定这是否是个好主意。我不是直接在解析器中查询数据库,而是在解析器中发出额外的 HTTP 请求,并通过网络传输产生开销。我猜这会通过额外的 API 调用层影响整体性能。
GraphQL 的一个好处是防止过度获取。通过解析器中额外的 API 调用层,我实际上已经获取了 API 响应中的所有字段。这听起来像是我描述的方法的另一个问题吗?
在微服务应用程序中实现 GraphQL 时,我应该为所有服务提供一层 API,然后让 GraphQL 解析器从中获取,还是应该直接在 GraphQL 解析器中查询服务的数据库?
【问题讨论】:
标签: api architecture graphql microservices