Graphql 何时使用显式关系-模式设计

Graphql 何时使用显式关系-模式设计,graphql,Graphql,我在思考关于模式设计的显式与隐式关系,何时 例如: 在具有两个自定义类型author和post(每个自定义类型具有多个属性)的虚拟架构中,post类型可以通过以下两种方式之一引用author: 显式:具有自动类型属性 隐式:具有间接指向作者的标量值 设计shema时。在这种决策中,我的指南针应该是什么? 提前感谢当您可以公开一个将返回整个资源的字段时,仅返回相关资源的ID对客户端来说绝对没有价值。仅公开ID意味着客户端必须向您的服务发出后续请求以获取相关资源,而不是在一个请求中获取整个数据图 在

我在思考关于模式设计的显式与隐式关系,何时

例如: 在具有两个自定义类型author和post(每个自定义类型具有多个属性)的虚拟架构中,post类型可以通过以下两种方式之一引用author:

  • 显式:具有自动类型属性
  • 隐式:具有间接指向作者的标量值
  • 设计shema时。在这种决策中,我的指南针应该是什么?
    提前感谢

    当您可以公开一个将返回整个资源的字段时,仅返回相关资源的ID对客户端来说绝对没有价值。仅公开ID意味着客户端必须向您的服务发出后续请求以获取相关资源,而不是在一个请求中获取整个数据图


    在其他服务(如RESTAPI)的上下文中,只返回相关资源的ID或URL可能是有意义的。这是因为在这些情况下,有效负载的大小是固定的,因此默认情况下返回每个相关资源可能会快速而不必要地增加响应。然而,在GraphQL中,请求有效负载是由客户机驱动的,因此这不是一个问题——客户机总是会得到它所要求的东西。如果客户端只需要作者的ID,他们仍然可以通过
    author
    字段仅获取该字段,同时允许在其他请求中或由其他客户端获取更完整的
    author
    对象。

    当您可以只公开一个可能会返回整个资源。仅公开ID意味着客户端必须向您的服务发出后续请求以获取相关资源,而不是在一个请求中获取整个数据图


    在其他服务(如RESTAPI)的上下文中,只返回相关资源的ID或URL可能是有意义的。这是因为在这些情况下,有效负载的大小是固定的,因此默认情况下返回每个相关资源可能会快速而不必要地增加响应。然而,在GraphQL中,请求有效负载是由客户机驱动的,因此这不是一个问题——客户机总是会得到它所要求的东西。如果客户端只需要作者ID,他们仍然可以通过
    作者
    字段获取该字段,同时允许在其他请求中或其他客户端获取更完整的
    作者
    对象。

    感谢您的回复。在某些情况下,不可能有对象。例如,在不同的节点上运行的不同服务都公开了自己的graphql模式。在这种情况下,如果一个模式想在另一个模式中引用一个类型,这是不可能的,对吗?仅通过各种粘贴/联合。我的想法正确吗?谢谢你的回答。在某些情况下,不可能有对象。例如,在不同的节点上运行的不同服务都公开了自己的graphql模式。在这种情况下,如果一个模式想在另一个模式中引用一个类型,这是不可能的,对吗?仅通过各种粘贴/联合。我的想法正确吗?