【问题标题】:GraphQL Mutation to update an array of fields in databaseGraphQL Mutation 更新数据库中的字段数组
【发布时间】:2020-09-27 13:59:28
【问题描述】:

我正在使用 GraphQL。我们的数据库有 300 多个可用的配置设置。当用户在页面上时,我会显示该页面的配置数据。例如,如果它们在彩色页面上,我会显示 primary_color、success_color、secondary_color、accent_color 等的值。在数据库中,我们基本上有一个 key 字段和一个 value 字段。键将具有“primary_color”,值将是“#FF0000”。这就是所有配置数据保存在数据库中的方式。

当用户点击页面上的保存时,我想保存用户更改的任何字段。是否有可能有一个突变来接受一个对象数组,这些对象的字段在该页面上已更改。所以突变会得到一个像这样的数组: [ {键:“primary_color”,值:“00FF00”} ....]。变异会遍历数组中的所有项目并将其保存到数据库中?

我想要一个可以在每个页面上使用的突变来保存用户更改的任何配置值。

【问题讨论】:

    标签: graphql graphql-js


    【解决方案1】:

    使用对象/数组作为“输入类型”的突变没有问题。 [mutation] 解析器可以循环遍历项目以更新数据库。也许您可以使用一些后端细节(集合)来一次更新许多项目。

    只需定义您的输入类型以接受成对类型(对象)的数组。

    查询数组没有问题。可以查询设置:

     query settings(type: "color") {
       key
       value
     }
    

    优化响应大小的一个小问题 - 您不能查询未知的键名来获得像 [{"primary_color":"#FF0000"}, {"success_color":"#00FF00"}] 这样的响应 - 但是可以使用“自定义 JSON 类型”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-24
      • 2018-11-10
      • 1970-01-01
      • 2018-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多