微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用于按 ID 或路径查询的 GraphQL 约定

如何解决用于按 ID 或路径查询的 GraphQL 约定

假设您有一个架构,其中资源可以通过其 ID 或路径 (/userName/projectName) 进行标识:

type User {
  id: ID!
  name: String!
}

type Project {
  id: ID!
  name: String!
  owner: User!
}

查询一个项目,我们需要两个解析器:

findProjectByID(id: String!): Project!
findProjectByPath(userName: String!,projectName: String!): Project!

理想情况下,我们只有一个接受两种标识符的解析器:

findProject(???): Project!

这些是我能想出的想法,但没有一个看起来很整洁:

# Idea 1
findProject(idOrPath: String!): Project! 

# Idea 2
findProject(id: String,userName: String,projectName: String): Project! 

# Idea 3
findProject(identifier: ProjectIdentifier): Project!
union ProjectIdentifier = ProjectID | ProjectPath
type ProjectID { id: String! }
type ProjectPath { userName: String!,projectName: String! }

最 GraphQL-y 的方法是什么?是否有适用于此的约定?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。