【问题标题】:In GraphQL, if I'm trying to resolve the Address or a Person, how do I get the Address ID?在 GraphQL 中,如果我尝试解析地址或人员,我如何获取地址 ID?
【发布时间】:2022-09-28 16:27:36
【问题描述】:

考虑这个模型:

type Address {
  id: ID!
}

type Person {
  id: ID!
  address: Address
}

我正在为Person->address 编写解析器以获取此人的地址,该地址位于另一个数据库表中。

为了做到这一点,我需要addressId,但我没有。 addressId 属性在 Person 解析器中可用,但是丢失了,因为我的 GraphQL 架构没有 addressId

如何在Person.address 解析器中获取addressId

PS:

我可以做到这一点的一种方法是将addressId 添加到Person,但如果我这样做,我将不得不将兄弟ID 添加到我的GraphQL 模式中的所有外键,这似乎是错误的。但是,如果那是要走的路,我会这样做

    标签: graphql apollo


    【解决方案1】:

    我最终解决此问题的方法是将任何子图形节点与 ID 属性配对。

    例子:

    type Person {
     
      addressId: String
      address: Address
    
      occupationId:String
      ocupation: Ocupation
    
    }
    

    这样,Person 的解析器函数将始终解析 addressIdoccupationId,但子解析器将启动 addressoccupation。在这些解析器中,parent 将是Person,我将能够读取addressIdoccupationId

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-29
      相关资源
      最近更新 更多