问题标签 [graphql-mutation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
655 浏览

mongoose - 将一组 ID 添加到 GraphQL 突变

我正在学习 GraphQL 并为最终用户构建一个应用程序,以输入保险计划并返回他们所在地区接受他们选择的保险的医生。我正在尝试将一组“docId”和“insId”推送到我的突变中,以便每个医生和每个计划分别有一系列接受的计划和接受的医生。

这是突变设置:

以下是猫鼬模型:

当尝试像这样在 GraphiQL 中添加每个 id 的数组时:

我越来越

关于我需要更改什么以确保我能够放入每个 ID 的数组的任何想法?如果您需要我当前代码库中的任何其他内容,请告诉我。

0 投票
3 回答
213 浏览

reactjs - Graphql mutation query : how to access the data elements

My mutation query is inserting name in my table and autogenerating the id. On console logging the data variable I can view the fields id and name in the data object. But I am not able to access them them individually. How can I console.log "id". Thank you.

the console.log(data) looks like : {insert_name: {...}}

which expands to :

0 投票
2 回答
1817 浏览

graphql - 部分更新突变(GraphQL)

我怎样才能更新一个只有一个字段更改的节点,而让其余字段保持不变?

我的用户类型

我的输入类型

我的突变类型

我的解析器

这是我在 GraphQL 操场上发送的请求

这是我得到的错误

谁来帮帮我。我错过了什么?按照 Daniel Rearden 在答案部分的建议更新我的服务器后,我收到了一个新错误

0 投票
2 回答
1851 浏览

graphql - 在 Amplify ReactJs 中删除和更新 Graphql 突变

Amplify 会自动为删除生成突变,如下所示:

这就是我在 App.js 中的称呼

它返回这样的错误。好像数据还没有通过

0 投票
1 回答
40 浏览

graphql - 当我将状态更改为graphql突变时该怎么办?

有如下成员架构

当我仅更改 is_deleted 字段时,更改该字段的最佳做法是什么

  1. 使用可以修改所有字段的 updateMember 突变
  2. 使用另一个只能更改 is_delete 状态的 changeDeleteStatus 突变

请给我见解

0 投票
1 回答
74 浏览

variables - 多重突变:如何让第一个突变将 ID 传递给第二个突变

问题

问题解决见下图

我希望使用第一个突变创建的 ID第二 个突变使用。在这种情况下,第二个突变需要第一个突变的 ID才能工作。

示例代码:

输入 Order 和 Order_rule(后端)

CreateOrder 和 CreateOrder_rule 变异(后端)

Order 和 OrderRules Mutator 类似(后端)

反应阿波罗

因此,使用示例来解释:我希望 order_id 是一个自动递增的主键,它将从createOrder突变生成,用于createOrder_Rule 突变。

有什么建议的方法来完成这项工作吗?我希望有一种方法可以在一个中包含多个突变并传递信息,但是我在较旧的答案中有红色,这是不可能的(还)。我试图让它工作,但还没有找到办法。

非常感谢任何使这项工作的提示!提前致谢!:)

问题解决了:

在后端使用 input 和 mutator 有助于解决问题。不再使用上面的最后一个突变。仅使用:示例代码:

突变顺序

类型

输入类型

Mutator Order (移除 Order_ruleMutator)

保存订单,将 Order_rule 字段添加到订单并保存 Order_rule。

这使它对我有用,但总是欢迎任何其他提示!

0 投票
1 回答
1893 浏览

typescript - “没有为突变配置架构。”

在我的项目中,我使用 npm、apollo 服务器和 typeorm 来设置我的服务器。当我尝试创建突变时,我收到此错误消息“架构未配置为突变”。我曾尝试寻找解决方案,但在所有其他解决方案中,他们使用的库与我不同,因此它们并没有真正的帮助……我还查看了示例,并且在他们的代码中,将突变导入到解析器文件,然后将解析器导入架构。因为它还说“未配置模式”,所以我想知道是否需要向我的 tsconfig.json 添加配置,以允许项目使用带有突变的模式。

突变看起来像这样:

我将这个类导入我的解析器类:

这稍后会导入到我的 index.ts 文件中,我还处理我的架构:

任何帮助都受到高度重视

0 投票
1 回答
723 浏览

reactjs - Prisma、GraphQL 和 Apollo 中具有突变的数据关系和连接类型

抱歉,这篇文章很长,但我尽量详细。

如何编辑我当前的模型、模式和解析器,以便能够通过 Web 表单将相关类型(供应商)保存/连接到我创建的类型(项目)?

我想创建一个库存项目并选择一个与该项目关联的供应商。

我有一个这样的 Prisma 数据模型(为了简单起见,我还有其他字段,因为我可以轻松保存其他字段;它只是与其他类型存在关系)......

物品可能有也可能没有与之关联的供应商。供应商可能有也可能没有当前与其关联的项目列表。

我有一个这样的graphql模式(与这个问题末尾的修改模式相比)......

我的解析器:

我的 React 组件包含以下内容:

稍后在我的 HTML 表单中的网页上,我有:

我只是不知道如何通过表单提交将供应商连接到该项目。如果我在解析器中硬编码供应商 ID,我可以让它工作,如下所示:

...但这显然不是我想要的。

对我来说,像这样修改我的架构是最有意义的:

但是当我这样做时,我得到了这个:

Error: The type of Mutation.createItem(vendor:) must be Input Type but got: Vendor.

如何编辑我当前的模型、模式和解析器,以便能够保存/连接在表单上选择的供应商 ID?

0 投票
1 回答
376 浏览

graphql - 如何在 GraphQL 突变的 fetch 请求中格式化你的 body?

我是第一次尝试 GraphQL,我正在尝试POST一些数据并在 MongoDB 数据库中创建一个新文档。

我已经定义了一个“Office”模型。这是文档的样子:

我在服务器上使用 Node 和 Express。这是我的突变:

客户端,我有这个:

我收到这些错误:

我认为这是我的语法问题:

我究竟做错了什么?

0 投票
2 回答
4456 浏览

python-3.x - Graphene Graphql - 如何链式突变

我碰巧向 Graphql API(Python3 + Graphene)发送了 2 个单独的请求,以便:

  1. 创建一个对象
  2. 更新另一个对象,使其与创建的对象相关。

我感觉到这可能不在 Graphql 的“精神”中,所以我搜索并阅读了有关嵌套迁移的信息。不幸的是,我还发现这是一种不好的做法,因为嵌套迁移不是顺序的,并且由于竞争条件,它可能会导致客户端难以调试问题。

我正在尝试使用顺序根突变来实现考虑嵌套迁移的用例。请允许我向您展示我想象的一个用例和一个简单的解决方案(但可能不是好的做法)。对不起,很长的帖子来了。

让我们想象一下,我有用户和组实体,我希望从客户端表单更新组,不仅可以添加用户,还可以在用户不存在时创建要添加到组中的用户。用户有名为 uid (user id) 和 groups gid (groupd id) 的 id,只是为了突出区别。所以使用根突变,我想像做一个查询:

您注意到我在createUser突变的输入中提供了用户 ID。我的问题是要进行updateGroup突变,我需要新创建用户的 ID。我不知道如何在 mutate 方法解析中的石墨烯中获得它updateGroup,所以我想象在加载客户端表单数据时从 API 查询 UUID。因此,在发送上述突变之前,在我的客户端初始加载时,我会执行以下操作:

然后,我将在突变请求中使用此查询响应中的 uuid(该值将是b53a20f1b81b439,如上面的第一个 scriptlet 中所示)。

你怎么看这个过程?有更好的方法吗?Pythonuuid.uuid4可以安全地实现这个吗?

提前致谢。

- - - 编辑

根据评论中的讨论,我应该提到上面的用例仅用于说明。实际上,用户实体可能具有固有的唯一键(电子邮件、用户名),其他实体也可能具有(ISBN for Book...)。我正在寻找一个通用案例解决方案,包括可能不显示这种自然唯一键的实体。