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

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

如何解决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 举报,一经查实,本站将立刻删除。