小编id *_*rum的帖子

GraphQL是否可以避免数据传输对象?

据我所知,数据传输对象(DTO)通常是小型,扁平,无行为,可序列化的对象,其主要优点是易于跨网络传输.

GraphQL有以下几个方面:

GraphQL和DTO模式是否相互排斥?

以下是导致这个问题的原因:我们设想了一个带网关的微服务架构.我正在设计一个API以适应将用于(除其他事项)几何的架构.在许多(可能是大多数)情况下,几何对客户端应用程序没有用,但它们在其他应用程序中很重要,因此必须提供服务.然而,它们是序列化的,几何形状可能很大,因此让客户选择拒绝它们可以节省大量带宽.我见过处理几何的RESTful API通过在查询字符串中提供"returnGeometry"参数来实现.我从未对这种方法感到完全满意,并且我最初设想提供一组相当深的相关/嵌套返回对象,其中许多客户将选择拒绝.所有这些都促使我考虑使用GraphQL接口.随着设计的进展,我开始考虑将输出展平(全部或部分),这使我考虑了DTO模式.所以现在我想知道是否最好将所有内容压平成DTO并跳过GraphQL(我认为有利于REST?).我已经考虑过使用GraphQL服务的DTO的中间地位,让客户选择他们想要的属性,但我想知道这是不恰当的混合模式和技术.

dto graphql

8
推荐指数
1
解决办法
832
查看次数

标签 统计

dto ×1

graphql ×1