首页 > 解决方案 > Apollo / GraphQL 具有不同参数的相同查询

问题描述

我将如何进行具有不同参数的 Apollo 查询。假设我的应用程序有用户的概念,我希望我的 API 能够通过 ID 或用户名找到用户。

我似乎无法做到这一点

type Query {
  user(id: ID!): User
  user(username: String!): User
}

我必须求助于这样的事情吗

type Query {
  userById(id: ID!): User
  userByUsername(username: String!): User
}

标签: graphqlapollo-server

解决方案


创建一个以 ID 和用户名作为字段的新输入类型,并将其指定为参数。

type Query {
  getUser(filters:UserFilter): User
}

input UserFilter{
    ID : Int,
    Username : String
}

查询应该是这样的......

Query{
 getUser(filters:{ID:123123})
}

或用于用户名过滤器

Query{
 getUser(filters:{Username:"Tom"})
}

推荐阅读