【发布时间】:2020-01-17 00:34:20
【问题描述】:
我正在采用 GraphQL 作为多个后端微服务的数据组合层。我们有一个UserService,它提供了一些与用户相关的REST API,一个是/users,另一个是/detail?userId=${userId}。
我有以下架构定义:
type User {
userId: ID!
name: String!
address: String
// ... some other fields
}
Query {
users: [User]!
userDetail(userId: ID): User
}
问题是,出于某种性能原因,/users 中的 User 项的字段少于 /detail。例如,address 字段不存在于 list API 中,而仅存在于 detail API 中。
那么,我们是否必须为 list 查询定义另一个 UserListItem?由于后端 API 的限制,我们不能在 list 和 detail 查询之间共享相同的 User 类型定义。
【问题讨论】:
标签: graphql apollo apollo-server