GraphQL是否支持多种类型的对象?

时间:2017-08-21 21:21:16

标签: graphql

我使用Apollo客户端运行Java GraphQL服务器。我的模型基于人物角色 - 每个人都可以是'演员','SoccerPlayer','政治家'等等,都实现了'人物'界面。 我有一个'搜索'字段,返回'Person'列表,但是一个实体可能有两种类型.. 例如,查询

Search (text: "Ronald Reagan"){
    id
    name
    ... on Actor{
        films{
            name
        }
    }
    ... on Politician{
        party{
            name
        }
    }
}

我希望能为前美国总统和演员获得“电影”和“派对”,尽管typeResolver(服务器端)强迫我只返回一种类型。这对GraphQL来说是否可行?也许我的模特错了? 感谢

1 个答案:

答案 0 :(得分:0)

GraphQL规范不允许进行多级继承,因此对于您的特定结构,Person可以是一个,也可以是ActorPolitician。< / p>

如果您将ActorPolitician转换为接口本身,您可以稍微接近目标,但是您必须再次重复Person中的字段,没有多级继承是可能的。