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

Add data in query which isn't in type

我正在做一个个人小项目,它从 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),
}

filters 包含调用期间传递的所有参数,如 teams(id: 100)

我的问题是,如果想要 API 中的团队列表,我需要传递比赛 ID。那么有没有办法在我的团队类型

中不添加 competitionID 而像 teams(id: 100, competitionId:200) 这样的调用

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

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)正确处理这些参数。