在查询中添加非类型的数据

时间:2020-02-10 14:51:26

标签: graphql graphql-js

我正在研究一个个人项目,该项目从Rest API导出数据并通过Graphql公开它们。

我知道我的类型:

type Team{
    id: ID,
    name: String,
    code: String
}

,查询配置如下:

type Query {
  teams(id: ID, name: String, code: Int): [Team]
}

Query: {
  teams: (_, filters) => footballService.getTeams(filters),
}

过滤器包含呼叫期间传递的所有参数,例如teams(id: 100)

我的问题是,如果想要从API中获得球队名单,我需要传递比赛ID。因此,有没有一种方法可以像teams(id: 100, competitionId:200)一样在我的团队类型中添加competitionID

1 个答案:

答案 0 :(得分:2)

您为团队查询定义的参数不必与团队类型属性相同。这是可能的:

type Team {
    id: ID,
    name: String,
    code: String
}

type Query {
  teams(id: ID, name: String, code: Int, competitionId: Int): [Team]
}

Query: {
  teams: (_, filters) => footballService.getTeams(filters),
}

通常,您会有类似这样的内容用于分页,例如这些字段不属于模型类型:

type Query {
  teams(
    filter: String
    skip: Int
    first: Int
    orderBy: String
  ): [User!]!

但是,您需要确保您的解析器(例如getTeams)能够正确处理这些参数。