【问题标题】:Is GraphQL an ORM?GraphQL 是 ORM 吗?
【发布时间】:2018-02-27 00:47:59
【问题描述】:

GraphQL 是 ORM 吗?好像是这样。归根结底,它需要查询数据库以获取信息。你需要给它一个模式(就像一个 ORM)。据我了解,在前端您传递您想要的细节,而后端的 GraphQL 将为您提供只是您请求的信息。

我看到的与 Sequelize 或 ActiveRecord 等传统 ORM 的唯一区别是 GraphQL 将只为您提供您想要的,使其非常有吸引力和灵活。我怀疑尽管幕后发生的任何事情都可能会给您留下一些低效的查询(ORM 很常见)。那么 GraphQL 是否只是一个 ORM,可以让您在请求和接收的内容方面提供 100% 的灵活性?

【问题讨论】:

    标签: orm graphql


    【解决方案1】:

    GraphQL 不是 ORM,因为它不理解 DB 的概念。它只是从“数据源”(可能是静态的、从文件等)获取数据。一旦将源指向它,它也无法弄清楚如何获取数据。您必须编写解析器函数来告诉数据库如何找到每个字段的值。

    一些 gems/packages 将简化其中的一些。其中一些可能是或可能成为 ORM,但 GraphQL 本身完全与平台/数据源无关。

    【讨论】:

      【解决方案2】:

      不,不是。仅使用 GraphQL,我们无法轻松访问数据库,因为发送查询所需的语言不是由 ORM 映射的。

      ORM 使访问数据库变得容易,这在某种意义上更像是创建一个我们的编程语言可以轻松访问的虚拟数据库。然后 GraphQL 将其查询发送到该虚拟数据库。

      【讨论】:

        【解决方案3】:

        我向您推荐 Prisma。 Prisma 是一个高性能的开源 GraphQL ORM-like 层,在您的 GraphQL 服务器中完成繁重的工作。它将您的数据库转换为 GraphQL API,您的解析器可以通过 GraphQL 绑定使用该 API。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-11-11
          • 2019-10-11
          • 2010-10-14
          • 2017-04-01
          • 1970-01-01
          • 2023-03-20
          • 1970-01-01
          • 2021-02-09
          相关资源
          最近更新 更多