【问题标题】:Duplicate object types in Apollo GraphQL for AndroidApollo GraphQL for Android 中的重复对象类型
【发布时间】:2019-10-14 18:32:48
【问题描述】:

在我的项目 GraphQL 架构中,对象 AllowedPeriod(它只是两个字段 startsAt/endsAt)可以到达图形的不同对象中。

在生成查询时,apollo 正在为每个 <parent_object>.AllowedPeriod 创建一个新类型

例如,在GetDevicesQuery 中,AllowedPeriod 可以在devicesactionsgroup 内部,从而生成以下类。

  • GetDevicesQuery.AllowedPeriod
  • GetDevicesQuery.AllowedPeriod1
  • GetDevicesQuery.AllowedPeriod2

有没有办法告诉 apollo 这些是相同的类型,并且不应该为每个类型生成类型?

【问题讨论】:

  • 我认为您实际上无法指定自己在库当前状态下的对象名称。你必须使用生成的

标签: android graphql apollo apollo-client apollo-android


【解决方案1】:

我认为您可以使用 graphQL 片段来解决您的问题。 Apollo 应该为您的每个查询生成相同的片段类。

例如:

fragment AllowedPeriodFragment on AllowedPeriod {
    startsAt
    endsAt
}

query GetDevicesQuery() {
    devices {
        allowedPeriod { 
            ...AllowedPeriodFragment 
        }
    }

    actions {
        allowedPeriod { 
            ...AllowedPeriodFragment 
        }
    }
}

生成的片段可以通过fragments()方法访问。

它应该看起来像: device.fragments().allowedPeriodFragment()action.fragments().allowedPeriodFragment()

【讨论】:

  • 不幸的是,我直到明天在工作中才能测试它(当赏金时间结束时),但我已经阅读了文档,这似乎是合理的。所以我将赏金交给你,下周我将对其进行测试并发表评论
猜你喜欢
  • 2019-02-25
  • 2019-07-09
  • 2020-09-16
  • 2019-10-15
  • 2017-09-14
相关资源
最近更新 更多