Graphql 将模式类型映射到数据库类型

问题描述

我正在尝试在微服务架构中使用 Graphql 联合创建一个 Poc。

我对 schema 中定义的类型(我使用带有 graphql-codegen 的 typescript)和 db orm 定义的类型之间的匹配有疑问。

我已经阅读了很多关于 graphql 最佳实践的文章,很多人说模式中定义的类型必须与 orm 定义的类型区别对待,但是没有示例,实际上在所有文章中都定义了类型在架构中定义,然后在解析器中通过 orm 调用数据库并返回数据库的类型。

例如这是我架构的一部分

...
type User @key(fields: "_id") {
  _id: ID!

  name: String!
  email: String

  employee: Activity
  customer: [Activity]

  createdAt: DateTime
}

extend type Activity @key(fields: "_id") {
  _id: ID! @external
  employees: [User]
  customers(first: Int! = 20,cursor: String,query: String): [User]
}
...

但是在数据库中我把数据放在这样的

export interface UserDb {
    _id: ObjectId;
    name: string;
    email?: string;
    employeeActivityId?: string;
    customerActivityIds?: string[];
}

如果我编辑我的数据库架构,使用在 graphql 架构上使用的相同名称一切正常,我也不能再使用 orm,因为我已经有从 graphql 架构生成的接口,但这不是最佳实践

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)