我正在研究一个个人项目,该项目从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
答案 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)能够正确处理这些参数。