我可以将 GraphQL 用于 mongoDB 或 mySQL 吗?

Can I use GraphQL for mongoDB or mySQL?

我开始学习 GraphQL,发现 GraphQL 是一种很棒的查询语言。
但是我想知道我是否可以将 GraphQL 用于现有数据库,例如 mongoDB 或 mySQL.

另外请解释一下棱镜。 prisma 是云数据库还是什么?

编辑:

TL;DR: GraphQL 可以与任何数据库一起使用,只要数据满足类型严格限定。 Prisma 是一个节点。js/typescript ORM 库并且与 GraphQL 配合得很好。

回头看这个有点老的问题,我发现这个问题太蠢了,而且有点太宽泛了。所以我决定添加更多想法,因为我现在对 GraphQL 和 Prisma 非常熟悉。希望这对开始学习 GraphQL 和 Prisma 的新开发人员有所帮助。

GraphQL 是一种我们可以用来与 API.
交互的查询语言 与 REST API 一样,GraphQL 是另一种 API 格式,我们可以使用 Queries 获取数据并使用 Mutations 更新数据。
由于 REST API 不依赖于数据库类型,只要数据可以格式化为类型严格的模型,GraphQL 也可以用于任何数据库。

在后端,您需要实现 GraphQL 接口,该接口 从数据库读取 数据并作为 Query 响应发送,并且 使用来自 Mu​​tation.

的数据更新 数据库

Prisma 另一方面是一个节点。js/typescript ORM 库 - 类似于 mongoose 或 sequelize。使用 Prisma 的好处是它会自动生成 TS 模型,并且可以更轻松地与 typescript 中的数据库进行交互。

由于GraphQL和Prisma在类型用法上都比较严格,所以它们非常匹配。另外,Prisma 提供了GraphQL 实现的专属接口,你可以很方便的用Prisma 编写GraphQL 接口。

有关 GraphQL 和 Prisma 组合的更多信息,请查看此处:https://www.prisma.io/graphql

编辑时间很长,但希望对您有所帮助。

是的,您可以将其与现有数据库一起使用。

Prisma 是一个使用 GraphQL 服务器构建的 ORM 层,它抽象出数据库并让您使用 GraphQL 查询与数据库交互。它目前支持 MySQL、MongoDB、AWS RDS 和 PostgreSQL。它不是数据库,但您可以将其托管在云端。

通常,您需要另一个 GraphQL 服务器,在其内部解析器将调用 Prisma 的 GraphQL 服务器。这个 GraphQL 服务器就是客户端调用的服务器。

正如之前提到的 post - 是的,你可以。

例如,如果您在 .NET 堆栈上编写后端应用程序 - 您可能会使用,猜测两个,真正测试过的主库,并且人们在实际项目中使用它(google GraphQL.Net 和第二个lib应该拼写差不多)

但是,这两个库都只为您提供 graphql 查询的处理和描述方案("accounts {id name}" 意味着您应该定义解析器,其中 returns 来自数据库或其他数据源的数据)

大多数人使用 EF (EntityFramework) 作为 GraphQL 和数据库之间的数据适配器。但是,从我的角度来看,这是无用的,特别是如果我们正在谈论从数据库中获取数据并且可能有数千个请求。 我们实现了基于轻量级数据库库的组件(适用于几乎所有流行的数据库,如 MSSQL、Postgresql、MySQL 或 Elasticsearch),能够非常轻松地配置 GraphQL 方案并提供排序、分页和复杂过滤器等主要功能.