prisma 能实现和 graphql 一样的东西吗?

Can prisma achieve the same things as graphql?

我很难理解 graphql 除了具有单一端点之外还能在 prisma 上实现什么。

我听说 graphql 的主要卖点是你可以查询你想要接收的特定字段,但这也不能用 prisma 使用“select" 属性?

const users = await user.findMany({
    select: {
        email: true,
    },
});

感谢您的回答!

我理解你的困惑。我会尽力让您更清楚地了解 Prisma 和 GraphQL 之间的区别。

棱镜

Prisma 是一个类似 ORM 的工具。这意味着它可以帮助您在数据库中搜索数据。帮助您创建查询、连接数据等。Prisma 是一种位于后端(通常)的工具,可帮助您找到要发送到前端或移动应用程序的数据。

GraphQL

GraphQL 是一种与后端通信的方式。因此,假设您想要根据用户的 ID 获取用户的名称。在 REST API(这是更常见的方式)上,您将向服务器发送 GET 请求,它会以 JSON 响应并包含该用户的所有数据。

// Imagine this is your request to the server
await api.get(http://myserver.com/user/1)

// Imagine this is your JSON response
{
  name: "Person",
  age: 24,
  address: "Avenue Street, number 7",
  ...
}

您会看到,即使您只想要用户的名称,您在使用 REST 时也获得了所有数据 API。但使用 GraphQL 时情况并非如此。您可以只请求您想要的数据。

// Your request to the server would look like this
{
  GetUserById(1) {
    name
  }
}

// In the response you would be getting a JSON with only the data that you requested

{
  name: "Person"
}

这就是 GraphQL 的用途,向您的后端请求特定数据并仅接收您需要的数据。在这两种情况下,REST API 和 GraphQL,您都可以使用 Prisma。它将帮助您在数据库中搜索所请求的数据。

如果您想了解有关 Prisma 的更多信息,可以查看他们的 website,您可以在其中找到有关其工作原理和使用方法的更多信息。

如果您想了解更多关于 GraphQL 的信息,可以查看他们的 FAQ page

您还可以学习如何一起使用Prisma and GraphQL