具有嵌套突变的 Graphql?

2024-01-18

如果可能的话,我正在尝试找出如何使用 graphql 突变来改变嵌套对象。例如我有以下架构:

type Event {
    id: String
    name: String
    description: String
    place: Place
}

type Place {
    id: String
    name: String
    location: Location
}

type Location {
    city: String
    country: String
    zip: String
}

type Query {
    events: [Event]
}

type Mutation {
    updateEvent(id: String, name: String, description: String): Event
}

schema {
    query: Query
    mutation: Mutation
}

如何将地点信息添加到我的updateEvent突变?


一般来说,您应该避免将突变的参数视为模式中对象类型的直接映射。虽然它们确实经常相似,但你最好在假设它们不会相似的情况下处理事情。

以您的基本类型为例。假设我想创建一个新事件,但我不知道位置,而只知道经度/纬度 - 它实际上是后端根据这些数据计算真实位置对象,而且我当然不知道它的 ID(它还没有!)。我可能会像这样构造我的突变:

input Point {
  longitude: Float!
  latitude: Float!
}

input PlaceInput {
  name
  coordinates: Point!
}

type mutation {
  createEvent(
    name: String!
    description: String
    placeId: ID
    newPlace: PlaceInput
  ): Event  
  updateEvent(
    id: ID!
    name: String!
    description: String
    placeId: ID
    newPlace: PlaceInput
  ): Event
)

突变基本上只是一个函数调用,最好用这些术语来思考它。如果您编写了一个函数来创建事件,您可能不会为其提供事件并期望它返回事件,您需要提供创建事件所需的信息.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

具有嵌套突变的 Graphql? 的相关文章

随机推荐

  • 如何以兼容模式运行Java?

    Java支持兼容模式运行吗 换句话说 如果我们在系统上安装了 JDK 8 是否可以将其配置为使用相同的安装在 7 或之前版本上运行我的应用程序 我可以举一个例子 比如 IE 11 可以根据兼容性选项切换为 IE 8 9 或 10 运行 我同
  • 在 C# 中将 double 转换为 int

    在我们的代码中 我们需要将 double 转换为 int double score 8 6 int i1 Convert ToInt32 score int i2 int score 谁能解释一下为什么i1 i2 我得到的结果是 i1 9
  • 为什么? “始终将用户定义的异常声明为最终的”

    我使用 Java 源代码分析器分析了我正在处理的代码 警告之一是 始终将用户定义的异常声明为最终的 还有许多其他警告没有多大意义 但这个警告让我有点困惑 我正在开发一个框架 并且有一个根通用异常 例如 FrameworkGenericExc
  • iOS 推送通知自定义声音重复?

    我正在处理推送通知 我已经为推送通知实现了自定义声音 如果推送通知自定义声音只有 5 秒长 那么我可以重复它直到达到最大声音限制 30 秒 吗 例如 我可以重复播放一个通知的声音 6 次吗 JSON 有效负载是 array alert gt
  • 替代 ClientLogin 进行身份验证

    由于 Google 将 ClientLogin API 列为已弃用 建议的替代方案是什么 就我而言 我需要一台服务器来使用我拥有的凭据进行身份验证和发布内容 OAuth 等替代方案在这种情况下不起作用 根据您的应用场景 认证方式有所不同 报
  • 你能在 Angular 中压缩 get 请求的内容吗?

    我正在使用 Angular 获取一些 JSON 如下所示 http url https www somemachine com getdata method GET params success function data status h
  • 尝试让 main/form1 之外的类相互交互是否是一种不好的形式? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何从 GitHub 构建 R 包?

    我尝试建立R 包的分支 https github com patcpsc rredis来自github 这个fork有一个新的错误修复 https github com bwlewis doRedis issues 10 我能够构建并安装来
  • 使散景的自定义 TapTool 适用于全息视图

    我想使用散景TapTool单击每个 URL 时打开不同的 URLholoviews Polygons 散景中的一个完美示例是散景文档 https docs bokeh org en latest docs user guide intera
  • Python pip包安装elastic-search-curator时出现RequestsDependencyWarning

    我通过以下命令安装了弹性搜索策展人 sudo pip install U elasticsearch curator 一切都安装好了 但是现在当我执行以下操作时 curator cli version 我收到以下依赖性警告 usr loca
  • javax.net.ssl.SSLHandshakeException:没有适当的协议(协议已禁用或密码套件不合适

    我知道有几个关于此错误的问题 但没有任何对我有帮助 我有在 gmail 服务器上发送带有附件的电子邮件的方法 效果很好 昨天我买了一台新的 mac mini m1 我尝试用这种方法发送电子邮件 但它引发了此错误 public static
  • Gson - 将嵌套对象序列化为属性

    有没有一种简单的方法可以将嵌套对象转换为 JSON 我正在尝试创建一个 JSON 对象来匹配后端 我在网络中使用 Retrofit 它使用 Gson 将对象转换为 JSON 我无权访问网络调用和转换之间的任何代码 因此我试图找到一种干净的方
  • 带有自定义项目的 JavaFx 2 ChoiceBox

    我有一堂课 例如 public class myClass int age String name public String toString return name public static ObservableList
  • Spark SQL 中的数组交集

    我有一个表 其中包含名为的数组类型列writer其值如下array value1 value2 array value2 value3 ETC 我在做self join获得数组之间具有共同值的结果 我试过 sqlContext sql SE
  • 解析错误:标识符“React”已被声明

    我正在尝试导入组件 但我无法做到这一点 我也尝试过 导出默认类 App 扩展 React Component 而不是类 App 扩展 Component 但这并不能解决我的问题 import React from react import
  • CSS如何让元素淡入然后淡出?

    我可以通过使用以下 css 将其类更改为 elementToFadeInAndOut 来制作不透明度为零的淡入元素 elementToFadeInAndOut opacity 1 transition opacity 2s linear 有
  • 相关对象的 Django 模型约束

    我有以下模型代码 class Tag models Model user models ForeignKey auth User on delete models CASCADE class Activity models Model us
  • 将 AVPackets 复用到 mp4 文件中

    我正在开发一个工具 它从网络接收 h 264 实时流 发送者是硬件编码器 缓冲最后 x 分钟 并在触发时创建最后 x 分钟的视频文件 我的工具能够接收实时流并使用 boost serialization 缓冲 AVPackets 此外 我可
  • EF 不会从表中的外键生成外键关联[重复]

    这个问题在这里已经有答案了 我有一个表 tblEvent 和另一个表 tblContact tblEvent 中有一个字段 ContactID 它通过外键链接到 tblContact 中的 ContactID 我已经三重检查了 外键在数据库
  • 具有嵌套突变的 Graphql?

    如果可能的话 我正在尝试找出如何使用 graphql 突变来改变嵌套对象 例如我有以下架构 type Event id String name String description String place Place type Place