【问题标题】:How to do runtime data manipulation over a field in graphQL?如何对graphQL中的字段进行运行时数据操作?
【发布时间】:2019-08-04 11:58:52
【问题描述】:

我有以下问题,

query
{
  snapshots {
    name
    timestamp
    aggregations {
      rating
      technology {
        name
        category {
          name
        }
      }
      trend
    }
  }
}

trend 不是数据库中的字段,我希望在运行时计算该字段的值并返回,有什么方法可以使用 graphQL 做到吗?

我正在寻找某种方式,通过这种方式我可以将函数与此查询中的趋势属性相关联,并在该函数中执行任何操作、比较计算或任何操作。例如

query
{
  snapshots(limit: 1, sort: "timestamp:desc") {
    name
    timestamp
    aggregations {
      rating
      technology {
        name
        category {
          name
        }
      }
      trend: function (() => { 
      // do some calculation or comparison or some sub query here
     })
    }
  }
}

我无法修改数据库或编写此 graphQL 查询的 API 中的任何内容。

【问题讨论】:

  • 您的解析器在哪里?请发布与此查询相关的所有代码。您可以在解析器中轻松完成此操作。
  • 这个查询与strapi中的GraphQl插件一起使用,它有自己的解析器。

标签: javascript api graphql graphql-js


【解决方案1】:

在 GraphQL 中,您只能操作服务器上的数据(使用解析器)。

如果您无权修改服务器上的 GraphQL 解析器,恐怕您无法完成您所描述的。

【讨论】:

    猜你喜欢
    • 2019-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-08
    • 1970-01-01
    • 2020-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多