使用graphql公开动态模式

使用graphql公开动态模式,graphql,graphql-java,Graphql,Graphql Java,我的应用程序动态处理模式。用户可以上载新域或更改现有域的定义。例如,我提供的产品带有如下用户模式: 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
}
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 java服务器,可以动态加载插件(每个插件都有自己的模式定义)

您必须实现自己的
GraphQLSchemaProvider
并重写
公共GraphQLSchema getSchema(HttpServletRequest请求)
。然后根据刷新时间/请求条件(即:用户)/任何其他内容加载/重新加载模式

对于第二个问题,可以使用内联片段