android - Apollo GraphQL for Android 中的重复对象类型

标签 android graphql apollo apollo-client apollo-android

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

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

例如,在 GetDevicesQuery , AllowedPeriod可以在里面devices , actionsgroup ,因此生成以下类。

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

有没有办法告诉 apollo 它们是相同的类型并且它不应该为它们中的每一个都生成类型?

最佳答案

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

例如:

fragment AllowedPeriodFragment on AllowedPeriod {
    startsAt
    endsAt
}

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

    actions {
        allowedPeriod { 
            ...AllowedPeriodFragment 
        }
    }
}

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

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

关于android - Apollo GraphQL for Android 中的重复对象类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56355600/

相关文章:

zend-framework - zend 3,graphQL - 如何在 Types 类中使用工厂创建模型实例

error-handling - token 过期时在 graphQL 客户端使用刷新 token

node.js - 如何模拟 mongodb 以进行单元测试 graphql 解析器

stomp - Apollo 可以根据消费者协议(protocol)转换消息吗?

android - ActionBarSherlock 以编程方式设置水平进度条最大值

android - Fragments 与弃用的 TabActivity 在 3.0 之前的设备上

reactjs - fetch后在 react 组件中获取重复元素更多

javascript - Apollo 客户端 : Keep/Reset defaults on clearing or resetting store

java - Android 上的 Azure 移动服务在更新时返回 "The id must be numeric"

java - 如何添加缺少的 Android list 文件