GraphQL突变,带有子查询的参数

时间:2020-05-14 14:13:16

标签: graphql hotchocolate

是否可以对GraphQL中的突变添加查找?假设输入类型类似,其中一个属性是另一个查询的结果。

createPerson(name: "Steve", gender: genders ( name: { eq: "mail" } ) { id } )

其中genders ( name: { eq: "mail" } ) { id }将恰好返回一个结果值

1 个答案:

答案 0 :(得分:0)

GraphQL 允许您:

  • “得到你想要的”;
  • 在写入时操作数据;
  • 自定义读取响应;

您当然可以编写一个 createPerson 变异解析器

  • 向另一个表询问其他数据(如果缺少 arg);
  • 写入数据库;

但它不影响(不适合)现有记录

您还可以使用读取解析器使用字段解析器更新记录中缺失的字段 - 一种“最终一致性”。

编写人员解析器以读取人员记录并编写额外的 person.gender 字段解析器以获取缺失的 gender 值。第二个可以用来更新'主要'人[DB表]记录:

  • 从其他表中读取缺失值;
  • 将值写入“主”表上的个人记录;
  • 返回值。

下次人员解析器将立即读取 gender 值(来自“主”人员表),[附加] 字段解析器根本不会被调用.

此技术可用于转换 DB 数据,而无需编写 SQL/DB 特定代码(不同的语法/类型问题,在更复杂的逻辑上更安全)- 读取每个/所有人的 {{ 1}} 字段。之后可以删除字段解析器(和另一个/旧表)。