首页 文章

用graphql公开动态模式

提问于
浏览
1

我的应用程序动态处理架构 . 用户可以上载新域或更改现有域的定义 . 例如,我使用这样的用户架构运送产品:

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代码中处理它,但是,然后需要将模式查找路由到我的代码而不是引用静态模式注册表 .

1 回答

  • 1

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

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

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

相关问题