使用输入对象作为graphQL查询的参数(而不是变异)有意义吗

使用输入对象作为graphQL查询的参数(而不是变异)有意义吗,graphql,apollo,apollo-server,graphql-java,Graphql,Apollo,Apollo Server,Graphql Java,我正在设计一个graphQL服务,并研究了输入对象以及关于使用它们进行突变的建议。使用输入对象作为参数来查询参数的数量是否很大(假设讨论中有10个左右),这也有意义吗?为什么?为什么不呢 另外,如果使用输入对象进行查询是有意义的,那么应该考虑什么来确定它是否适合我 查询示例: retrieveData( ids: [ID!] codes: [String!] countries: [String!] types: [String!] business:

我正在设计一个graphQL服务,并研究了输入对象以及关于使用它们进行突变的建议。使用输入对象作为参数来查询参数的数量是否很大(假设讨论中有10个左右),这也有意义吗?为什么?为什么不呢

另外,如果使用输入对象进行查询是有意义的,那么应该考虑什么来确定它是否适合我

查询示例:

  retrieveData(
    ids: [ID!]
    codes: [String!]
    countries: [String!]
    types: [String!]
    business: [String!]
    locations: [ID!]
    region: Region!
    limit: Int = 50
    offset: Int = 0
    sortBy: SortBy
    version: Int
  ): Response!```

不,数量不是原因,相似性是关键(即分页-限制+偏移量)<代码>检索数据看起来没有特定类型。。。属性看起来像类型中嵌入的关系<代码>其中-可以使用类似过滤的方法,我故意重命名查询,使其成为通用查询@xadm您是对的,这些参数用于过滤返回的数据。所有参数位置都用于过滤,并且是响应对象的一部分。它们可以组合在像DataFilter这样的输入对象中,我们可以有另一个用于分页的输入对象。这种方法的缺点是什么?属性/过滤器仍然“看起来像类型中嵌入的关系”,名称没有什么区别。。。没有坏处