【发布时间】:2018-09-30 00:00:18
【问题描述】:
我们目前正在研究使用 GraphQL 作为我们基于微服务的架构的网关接口。当前的架构是基于 CQRS 和 REST 的,很多视图都针对 UI 进行了优化。这些视图通常使用来自各种微服务(有界上下文)的各种事件异步更新。
为了支持 UI 和减少闲聊,响应包含完全丰富的模型,例如帖子包含完整的用户个人资料。使用 graphql 这是否意味着我们不再需要尽可能地实现/非规范化?
【问题讨论】:
我们目前正在研究使用 GraphQL 作为我们基于微服务的架构的网关接口。当前的架构是基于 CQRS 和 REST 的,很多视图都针对 UI 进行了优化。这些视图通常使用来自各种微服务(有界上下文)的各种事件异步更新。
为了支持 UI 和减少闲聊,响应包含完全丰富的模型,例如帖子包含完整的用户个人资料。使用 graphql 这是否意味着我们不再需要尽可能地实现/非规范化?
【问题讨论】:
是的,与 REST 相比,GraphQL 的优势在于客户端选择接收哪些数据以响应请求。服务器只是让其数据可用于查询,允许客户端请求它需要的数据。这允许在客户端的实现细节和服务器的响应之间解耦。
例如,您不再需要在添加产品时决定是否应退回整个购物车 - 将决定权留给客户。
【讨论】: