【问题标题】:exposing dynamic schemas with graphql使用 graphql 公开动态模式
【发布时间】:2018-04-10 04:25:28
【问题描述】:

我的应用程序动态处理架构。用户可以上传新域或更改现有域的定义。例如,我用这样的用户模式发布产品:

user { 
  fn, ln, age
}
Later user can change this definition to include new properties;
user { 
  fn, ln, age, 
  salary, address
}

或者他们可以添加一个全新的域概念。

如果我使用 GraphQL,有没有办法动态更改架构?

另一个问题是; 我们的模式具有使模式的某些部分相关的条件。例如; 用户架构可能是这样的:

user {
  fn, ln, age, gender
  foo (if gender == Male)
  bar (if gender == Female)
}

GraphQL 中是否有规定来表达这些。我可以在 java 代码中处理它,但是,模式查找需要路由到我的代码,而不是引用静态模式注册表。

【问题讨论】:

    标签: graphql graphql-java


    【解决方案1】:

    我必须解决同样的问题:我有一个可以动态加载插件的 graphQL java 服务器(每个插件都有自己的架构定义)。

    您必须实现自己的GraphQLSchemaProvider并覆盖public GraphQLSchema getSchema(HttpServletRequest request)。然后根据刷新时间/请求条件(即:用户)/其他任何内容加载/重新加载您的架构......

    对于第二个问题,您可以使用内联片段http://graphql.org/learn/queries/#inline-fragments

    【讨论】:

      猜你喜欢
      • 2021-07-16
      • 2017-01-08
      • 2017-06-24
      • 2018-10-12
      • 2022-01-18
      • 2022-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多