首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用Prisma GraphQL-Yoga作为快速/节点应用程序:如何在服务器端调用GraphQL突变?

在服务器端调用GraphQL突变,可以通过以下步骤实现:

  1. 首先,确保已经安装了Prisma和GraphQL-Yoga,并且已经设置好了GraphQL模式和Prisma客户端。
  2. 在服务器端的代码中,首先导入所需的依赖项和模块。例如,在Node.js中,可以使用require语句导入所需的模块。
  3. 创建一个GraphQL服务器实例,并配置所需的解析器和上下文。在GraphQL-Yoga中,可以使用GraphQLServer类来创建服务器实例。
  4. 在服务器配置中,定义GraphQL突变的解析器函数。这个函数将处理来自客户端的突变请求,并执行相应的操作。解析器函数接收四个参数:父级对象、参数、上下文和信息。可以使用这些参数来访问和操作数据。
  5. 在解析器函数中,可以使用Prisma客户端来执行数据库操作。Prisma客户端提供了一组方法,用于查询、创建、更新和删除数据。可以根据具体的需求选择适当的方法。
  6. 在解析器函数中,可以使用Prisma客户端的方法来执行数据库操作。例如,可以使用prisma.create方法来创建新的数据库记录,使用prisma.update方法来更新现有记录,使用prisma.delete方法来删除记录等。
  7. 在解析器函数中,可以根据需要处理和验证输入参数。可以使用条件语句、循环和其他逻辑来实现自定义的业务逻辑。
  8. 最后,将解析器函数与相应的突变类型关联起来。在GraphQL模式中,突变类型定义了可用的突变操作。可以使用typeDefs属性来定义突变类型,并使用resolvers属性将解析器函数与突变类型关联起来。

以下是一个示例代码片段,展示了如何在服务器端调用GraphQL突变:

代码语言:txt
复制
const { GraphQLServer } = require('graphql-yoga');
const { PrismaClient } = require('@prisma/client');

const prisma = new PrismaClient();

const typeDefs = `
  type Mutation {
    createUser(name: String!): User!
  }

  type User {
    id: ID!
    name: String!
  }

  type Query {
    users: [User!]!
  }
`;

const resolvers = {
  Mutation: {
    createUser: async (_, { name }) => {
      const user = await prisma.user.create({
        data: {
          name,
        },
      });

      return user;
    },
  },
  Query: {
    users: async () => {
      const users = await prisma.user.findMany();
      return users;
    },
  },
};

const server = new GraphQLServer({ typeDefs, resolvers });

server.start(() => {
  console.log('Server is running on http://localhost:4000');
});

在上面的示例中,定义了一个名为createUser的突变类型,并将其与解析器函数关联起来。解析器函数使用Prisma客户端的create方法来创建新的用户记录。还定义了一个名为users的查询类型,用于获取所有用户的列表。

请注意,上述示例中的代码仅供参考,实际实现可能会根据具体需求和使用的技术栈有所不同。

关于Prisma GraphQL-Yoga的更多信息和使用示例,可以参考腾讯云的相关文档和教程:

  • Prisma官方文档:https://www.prisma.io/docs/
  • GraphQL-Yoga官方文档:https://github.com/prisma-labs/graphql-yoga
  • 腾讯云产品介绍:https://cloud.tencent.com/product/prisma
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

写在 2021: 值得关注学习的前端框架和工具库

Server以中间件的形式挂载到一个Node应用上(我就是使用这种方式来同时提供REST和GraphQL两套API的,但需要注意某些中间件的配置需要ignore掉挂载的路径) GraphQL-Yoga...还提供了中间件(注意和服务端框架的中间件区分)、鉴权(推荐GraphQL API的鉴权只使用它提供的)、扩展、指令、联合类型等。作者也很厉害,提供了和NestJS以及Prisma各自的集成包。...GraphQL-Code-Generator[48],很强大的工具,从.graphql文件到语言可以直接使用的方法/类型定义,这个思想实际上各个语言都有,Dart和Ruby等。...一体化框架 一体化框架指的是, 你的前后端项目放在同一个repo里(后端是Node),同时前端直接调用在后端定义的方法,由框架在编译时去自动的把前端对后端的方法调用转换成HTTP请求。.../apollo-server [43] GraphQL-Yoga: https://github.com/prisma-labs/graphql-yoga [44] TypeGraphQL: https

4.2K10

「首席架构师推荐」React生态系统大集合

Elemental - React.js网站和应用程序的UI工具包 StateTrooper - 使用CSP集中管理React应用程序的状态 Preact:使用相同的ES6 API快速3kb React...Redux教程 使用Redux和React-Router进行服务器端渲染 Redux深度介绍 单元测试Redux应用程序 使用JWT身份验证保护您的React和Redux应用程序 使用React,Redux...和redux-saga构建图像库 使用redux调用API的简化方法 基于React Redux的献血者演示应用程序 LearnCode.academy Redux教程系列 实用的Redux 初学者的完整...- Go / Golang的GraphQL 服务器集成 express-graphql - 使用Express创建GraphQL HTTP服务器 graphql-yoga - 运行GraphQL服务器的最简单方法...数据库集成 Hasura - Postgres上的即时实时GraphQL Prisma - 一个高性能的开源GraphQL ORM-like层,可以在GraphQL服务器中完成繁重的任务。

12.3K30

写在2021: 值得关注学习的前端框架和工具库

强大的地方在于实现了一套GraphQL的缓存方案(GraphQL不像REST API那样可以用URL作为缓存的key,它只有单个schema,要缓存必须基于Schema拍平整个数据结构,然后再基于各个field...Server以中间件的形式挂载到一个Node应用上(我就是使用这种方式来同时提供REST和GraphQL两套API的,但需要注意某些中间件的配置需要ignore掉挂载的路径) GraphQL-Yoga...还提供了中间件(注意和服务端框架的中间件区分)、鉴权(推荐GraphQL API的鉴权只使用它提供的)、扩展、指令、联合类型等。作者也很厉害,提供了和NestJS以及Prisma各自的集成包。...GraphQL-Code-Generator,很强大的工具,从.graphql文件到语言可以直接使用的方法/类型定义,这个思想实际上各个语言都有,Dart和Ruby等。...一体化框架 一体化框架指的是, 你的前后端项目放在同一个repo里(后端是Node),同时前端直接调用在后端定义的方法,由框架在编译时去自动的把前端对后端的方法调用转换成HTTP请求。

2.8K10

超越 REST

在 Netflix Studio Engineering 内部,一种备受关注的方法是将 GraphQL 微服务(GQLMS)作为后端平台来促进应用程序快速开发。...与“用一张图来管理所有对象”的方法不同,GQLMS 只是利用 GraphQL作为构建 CRUD 应用程序的丰富 API 规范。...具体来说: 使用数据库视图作为“API 层”来保持灵活性,以允许在不变更现有 GraphQL 模式(构建在数据库视图上)的情况下修改表。...然而,一旦应用程序的行为被充实起来,我们就可以快速创建新视图,以满足每个 UI 交互的需求,这样每次交互只需要一个调用即可。...向 Graphile 生成的模式中添加自定义查询和突变(即公开 UI 所需的 gRPC 服务调用)是我们目前在 Docker 镜像中不支持的。

2.9K20

适用于Node.js和TypeScript的完整ORM —— Prisma

数据库是很难的 使用数据库是应用程序开发中最具挑战性的领域之一。数据建模,模式迁移和编写数据库查询是应用程序开发人员每天处理的常见任务。...Prisma 的VS Code 扩展提供语法高亮显示,自动补全,快速修复和许多其他功能,使数据建模具有神奇而令人愉悦的体验。...从 GraphQL 到数据库 自从我们开始构建开发人员工具以来,作为一家公司,在过去的几年中,我们经历了许多主要的产品迭代和发展过程: Prisma 是我们从成为 GraphQL 生态系统的早期创新者中学到的经验教训以及我们从小型创业公司到大型企业的各种规模的数据层获得的见解的结果...自三年前首次发布以来,Prisma 已被成千上万的公司使用Prisma 经过了实战测试,并准备用于关键任务应用程序。 我们关心开发人员 Prisma 是开放开发的。...以下是一些使用 Prisma 的高级框架的选择: RedwoodJS——基于 React 和 GraphQL 的全栈框架 Blitz——基于 Next.js 的全栈框架 KeystoneJS——无头 CMS

1.8K50

【译】适用于Node.js和TypeScript的完整ORM —— Prisma

数据库是很难的 使用数据库是应用程序开发中最具挑战性的领域之一。数据建模,模式迁移和编写数据库查询是应用程序开发人员每天处理的常见任务。...Prisma 的VS Code 扩展提供语法高亮显示,自动补全,快速修复和许多其他功能,使数据建模具有神奇而令人愉悦的体验。...从 GraphQL 到数据库 自从我们开始构建开发人员工具以来,作为一家公司,在过去的几年中,我们经历了许多主要的产品迭代和发展过程: Prisma 是我们从成为 GraphQL 生态系统的早期创新者中学到的经验教训以及我们从小型创业公司到大型企业的各种规模的数据层获得的见解的结果...自三年前首次发布以来,Prisma 已被成千上万的公司使用Prisma 经过了实战测试,并准备用于关键任务应用程序。 我们关心开发人员 Prisma 是开放开发的。...以下是一些使用 Prisma 的高级框架的选择: RedwoodJS——基于 React 和 GraphQL 的全栈框架 Blitz——基于 Next.js 的全栈框架 KeystoneJS——无头 CMS

1.8K01

使用 GraphQL 和 Ballerina 操作多个数据源

GraphQL 是什么 GraphQL 是一种应用层服务器端技术,由 Facebook 于 2012 年开始开发,并于 2015 年公开发布,用于优化 REST API 调用。...客户端可以快速进行产品迭代 通常,REST API 需要根据客户端应用程序需要的视图来提供端点。如果客户端应用程序发生了变化,它需要的数据可能比以前多也可能比以前少。...如果使用的是 GraphQL,由于客户端可以指定准确的数据需求,所以只需要在客户端做出更改,服务器端不需要做任何额外的工作。...为什么选择 Ballerina 你可以使用任何流行的编程语言来构建 GraphQL 应用程序 Go、Java、Node.js 等。...测试 Bookstore 服务 要调用 GraphQL 服务器,需要使用客户端。

2.4K20

声明式数据建模、定义简单易懂:下一代 ORM 助你效率倍增 | 开源日报 No.102

picture prisma/prisma[1] Stars: 34.0k License: Apache-2.0 picture Prisma 是一个下一代 ORM,包括以下工具: Prisma Client...Prima Client 可以在任何使用 Node.js 或 TypeScript 编写的后端应用程序使用 (包括无服务器应用程序和微服务)。...这可以是 REST API、GraphQL API、gRPC API 或其他需要数据库支持的项目。...该项目的核心优势和关键特点包括: 采用配置驱动的方法实现了模块化设计,通过在 yaml 配置文件中调用 instantiate_from_config() 函数来构建和组合子模块。...主要功能: 创建并与浏览器或通过短信进行文本聊天的 AI 伴侣互动 确定您伴侣的个性和背景故事 提供了 ChatGPT 和 Vicuna 上运行的多种类型 (恋爱、友谊、娱乐等) AI 伴侣模型选择

23610

React 设计模式 0x6:数据获取

也会将数据从应用程序提交到服务器以接收某种响应。有几种方法可以将此数据发送/获取到 API 或服务器,可以使用内置的 API 或外部 npm 包来实现。...它是同构的(即可以在浏览器和 nodejs 中使用相同的代码库)。在服务器端,它使用本地的 node.js http 模块,而在客户端(浏览器)中,它使用 XMLHttpRequests。...GraphQL 查询总是返回可预测的结果,使用 GraphQL应用程序速度快且稳定,因为它们控制获取的数据,而不是由服务器来控制。...Memoization 函数通常更快,因为如果使用相同的参数再次调用函数,则不会重新执行函数,而是从缓存中获取结果。...通过使用 React Query,开发者可以快速地处理数据获取和管理,同时保持 React 应用程序的高性能和可伸缩性。

1.2K20

用ServBay快速构建下一代GraphQL应用

GraphQL是由Facebook开发的一种数据查询和操作语言,用于API,并作为运行时用于执行这些查询的服务器端软件的一种方式。它提供了一种更高效、强大和灵活的替代REST的方法。...,使得开发者可以快速启动项目。...使用 Docker(或任何其他容器化技术),您可以将每个微服务封装在其自己的容器中,从而提供高级别的隔离。每个容器作为一个独立的单元运行,具有自己的依赖项和运行时环境。此外,您可以轻松扩展微服务。...Dockerizing GraphQL微服务要使用 Docker 容器化您的 GraphQL API,您需要创建一个 Dockerfile。...例如,您可以利用突变添加新用户的详细信息createUser。以下是用户 API 测试的示例:通过执行这些步骤,您应该能够成功测试用户 API 服务的功能。

14300

GraphQL最突出的架构优势是什么?

GraphQL API 的配置工作包括: 安装 GraphQL 公开一个服务器端点 设计一个模式(schema) 将解析器连接到数据源 这是我们需要做的工作,但不是我们项目的工作重心。...,这些方法在被调用时会将操作转换为适当的 API 以跨越数据图。...在 Apollo Server 端,这些 API 调用将控制权转交给负责使用 ORM、原始 SQL、缓存、其他 RESTfulAPI 或任何你想到的方法来获取数据的解析器。...对于突变,解析器可以简单地将控制权传递给一个应用层用例。 将用例作为应用程序的重心后,从 REST 切换到 GraphQL(或同时支持两者)变得轻而易举。...在架构层面,由于 GraphQL 仅向客户端公开单个端点,因此它满足了这一原则。 客户端隐藏了字段解析机制的所有复杂性,它只需关注如何在 GraphQL 服务器之上构建即可。

2.1K20

graphw00f:一款功能强大的GraphQL服务器引擎指纹识别工具

关于graphw00f: graphw00f是一款针对GQL节点GraphQL指纹识别工具,该工具可以混合发送良性和恶意查询请求,以帮助广大研究人员识别和确定目标应用程序背后的GraphQL引擎。...精心构建的查询请求会导致不同的GraphQL服务器实现对查询、突变和订阅做出不同的响应,以实现我们对后端引擎进行指纹识别并区分不同的GraphQL实现。...- Julia Strawberry - Python Tartiflette - Python GraphQL技术防御矩阵: 每个指纹技术(Graphene、Ariadne等)都有一个相关文档(例如...: git clone git@github.com:dolevf/graphw00f.git 接下来,使用下列命令运行graphw00f,并查看工具帮助信息: python3 main.py -h Usage...工具使用: 识别GraphQL指纹 在这个例子中,我们将识别一个GraphQL节点的具体位置: python3 main.py -f -t https://demo.hypergraphql.org:8484

1.1K20

与我一起学习微服务架构设计模式8—外部API模式

使用响应式编程抽象 按顺序调用服务,服务响应时间过长,尽可能同时调用所有服务,但编写可维护的并发代码存在挑战。可使用响应式方法,CompleteFutures、Monos、RxJava等。...使用GraphQL实现API Gateway 实现支持多种客户端的REST API的API Gateway非常耗时,你可能需要考虑使用基于图形的API框架,GraphQL。...它可以由三部分组成: GraphQL模式:定义服务器端数据模型及其支持的查询 解析器函数:解析函数将模式的元素映射到各种后端服务。 代理类:代理类调用应用程序的服务。...GraphQL通过调用解析器函数检索数据,以此实现API组合模式。 GraphQL通过递归调用Query文档中指定的字段解析器函数来执行查询。...缓存会利用先前获取的同一对象结果,以避免不必要的重复调用。 为了让客户端调用GraphQL,你需要将它与Web框架集成,Express Web

1.4K30

经过一个月的探索,我如何将 AST 操作得跟呼吸一样自然

典型的 DSL 实现,其没有编译产物,而是由独一的编译引擎消费, GraphQL (.graphql)、Prisma (.prisma) 这一类工具库(还有更熟悉一些的, HTML、SQL、Lex...、XML 等),其不需要被编译为 JavaScript, .graphql 文件直接由 GraphQL 各个语言自己实现的 Engine 来消费。...类似的,还有 GraphQL Tools[6] 中,对 GraphQL Schema 添加 Directive 时同样采用的是 Visitor API, import { SchemaDirectiveVisitor...而 jscodeshift、gogocode 的 Chaining API 则是命令式(Imperative)的,我们需要先获取到 AST 节点,然后对这个节点使用其提供(封装)的 API,这就使得我们很可能遗漏掉一些边界情况而产生不符预期的结果...同样的,在只是对粒度较粗的 AST 节点整个 Class 结构)做操作时,ts-morph 也有着奇效。

1.5K11

PayPal大规模采用GraphQL的探索和实践

GraphQL 的帮助下,我们已经能够弥合面向前端应用程序的后端(BFF,backend for frontend)和后端 API 功能之间的差距,因为 GraphQL 可以作为下游 API 的编排层...这意味着 UI 应用程序GraphQL 端点对话,这些端点确定要调用哪个下游服务。可以直接在 GraphQL 层构建新功能。...一些团队选择使用 GraphQL 作为纯编排层,而其它一些团队使用 GraphQL 作为业务逻辑层。 收银台团队是第一个率先使用 GraphQL 的团队。...我们在 JS @ PayPal 公开会 上多次讨论了我们是如何在各种应用程序使用 GraphQL 的。 6 我们面临哪些挑战?...使用 GraphQL,我们不必为每个平台编写多个 SDK。我们构建一次 API 就可以了。没有 GraphQL,我们不知道商户正在使用哪些字段以及调用了哪些端点。

3K20

【API架构】使用 JSON API 的好处

JSON API 如何在实践中使用:FitBit 案例研究 让我们看看 JSON API 如何在实践中实现以设计高效的 API,使用 FitBit 作为现实生活中的案例研究。...他们的设备需要经常与服务器同步,并且这些数据也可以被第三方应用程序修改。 这些更改必须非常快速地反映在所有 API 客户端中。...根据 Lee 的说法,这真的开始在一个应用程序中叠加多种体验。 比较 JSON API 和 GraphQL 既然我们本质上是在讨论使用图形,为什么不使用 GraphQL 呢?...GraphQL 的许多好处,例如查询效率和减少往返调用,都可以在 JSON API 中使用稀疏字段集和复合文档进行匹配。JSON API 因此可以提供与 GraphQL 相同的功能。...如上所述,让客户端和服务器共享一个通用数据模型( JSON API)有很多优点。

2.7K20

GraphQL 初体验,Node.js 构建 GraphQL API 指南

但是,与任何框架或语言一样,GraphQL 也需要权衡取舍。在本文中,我们将探讨使用 GraphQL 作为 API 查询语言的利弊,以及如何开始构建实现。...考虑一个使用 API 连接到远程数据库的 Sass 应用程序。你想要呈现用户的个人资料页面,你可能需要进行一次 API GET 调用,以获取有关用户的信息,例如用户名或电子邮件。...另一部分涉及实际获取数据,这是通过使用解析器完成的,解析器是一个返回字段基础值的函数。 让我们看一下如何在 Node.js 中实现解析器。...因为我们使用的是 Express,所以我们可以使用 express-graphql 包来暴露我们的模式作为端点。...为了高效快速,我们希望 GraphQL 以尽可能少的往返次数访问相同的数据库行。 dataloader 程序包旨在解决这两个问题。

8.3K40

Netflix 如何真正使用 Java

首次的升级涵盖了众多领域,远程调用、并行计算以及利用 RxJava 和 Hystrix 实现的容错机制。然而,这些升级并非尽善尽美,仍存在一些明显的限制。...他还阐述了 GraphQL 作为一种替代方案,解决了 REST 中普遍存在的过度获取和不足获取问题。...这种架构带来了诸多好处:首先,消除了 API 的重复;其次,UI 开发人员无需涉足服务器端开发;再者,实现了共享的 GraphQL 模式;最后,摆脱了对 Java 客户端库的依赖。...Netflix 正在积极测试 JDK 21,Bakker 认为随后升级到 JDK 21 将更加简单和快速。...然而,Bakker 强调了"虚拟线程并非免费午餐",他警告说,如果库具有高 CPU 使用率,仅仅向应用程序添加虚拟线程实际上可能会降低性能。

28120

何在 React.js 项目中使用 GraphQL

当与 React.js 结合使用时,这个强大的 JavaScript 库为创建动态、响应式的 Web 应用程序打开了无限的可能性。...它允许您仅请求所需的数据,从而使 API 调用更加高效。与传统的 REST API 不同,传统的 REST API 由服务器确定响应结构,而 GraphQL 则使客户端能够定义其所需数据的形状和结构。...在这个例子中,假设您有一个在 http://localhost:4000/graphql 上运行的 GraphQL 服务器。您可以将此 URL 替换为实际的 GraphQL 服务器端点。...组件包装您的应用程序,并将客户端实例作为属性传递,以便在整个应用程序中进行 GraphQL 查询。...这只是一个起点,随着您的应用程序的发展,您现在可以探索更高级的功能, mutations、subscriptions 和使用 Apollo Client 进行缓存。

38140
领券