使用 graphql 公开动态模式

2023-12-25

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

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并覆盖public GraphQLSchema getSchema(HttpServletRequest request)。然后根据刷新时间/请求条件(即:用户)/其他任何内容加载/重新加载您的架构...

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 graphql 公开动态模式 的相关文章

随机推荐

  • 如何最好地在数据库中存储时间戳或日期?

    当我需要存储时间 日期信息时 最好如何存储在数据库中 如果我将它们存储为String代表例如获取当前时间戳 使用Date例如 并存储String在数据库中的表示是一个好主意吗 对此的最佳实践是什么 有什么缺点 最佳实践是使用TIMESTAM
  • 代码签名证书过期后会发生什么?

    我正在考虑从 VeriSign 或 Thawte 购买代码签名证书来签署 XBAP 我的问题是 证书过期后会发生什么 对于 1 年 2 年证书来说 299 美元和 599 美元是相当高的价格 如果我必须在证书到期时向客户提供新签名的版本 那
  • 似乎无法放弃 Git 中的更改

    从命令行看到以下内容后 On branch RB 3 0 10 Changed but not updated use git add
  • “next/font”需要 SWC,尽管由于存在自定义 babel 配置而正在使用 Babel

    当我尝试使用样式组件运行 Nextjs 项目时 我遇到了此错误 这是我的 babelrc plugins babel plugin styled components ssr true displayName true presets ne
  • java中的immutable和final有什么区别?

    最近有人问我这个问题 但无法简明地解释这两个概念到底有何不同 例如 最终且不可变 final String name John 如果我现在写 name Sam 我会得到一个编译器错误 不可变 String name John name Sa
  • SSRS 2005 如何打印 4" X 3" 标签为纵向..SSRS 假定为横向

    我有一份 SSRS 2005 报告表单 正在打印到 Zebra ZDesigner TLP 2844 Z 标签打印机 交互和页面尺寸设置为 4 英寸宽 x 3 英寸高 由于 SSRS 中没有纸张方向 因此当它应该是纵向报告时 它会假设这是横
  • 在 Hudson 重新运行期间首先运行失败的测试

    我在哈德逊有一份长期运行的单元测试工作 如果某些测试失败 我想先运行它们 而不是等待其他测试在它们之前运行 看看我是否修复了它们 可以在哈德逊设置吗 谢谢 我之前也遇到过同样的问题 这是我的解决方案 您可以编写一个独立程序来运行单元测试用例
  • 在nodejs解密中出现错误(错误:不支持的状态或无法验证数据)

    我在 java 中使用 AES GCM NoPadding 算法 AES 256 加密了一条消息 并尝试在 NodeJs 中解密它 出现异常 错误 状态不受支持或无法验证数据 同时解密 下面是java和nodejs的完整代码以及错误信息 请
  • ASP.NET Core:[FromQuery]用法和URL格式

    我正在尝试在我的 Web api 中使用 FromQuery 但我不知道如何使用它 这是控制器中的 GetAllBooks 方法 HttpGet Route api v1 ShelfID shelfID BookCollection pub
  • Open Office xml SDK 异常“无法插入 OpenXmlElement“newChild”,因为它是树的一部分”

    我正在使用 open office sdk 2 0 生成一个 word 文档 我遇到的异常是 无法插入 OpenXmlElement newChild 因为它是树的一部分 我知道异常是由于尝试 xml 中的重复节点造成的 但我不知道如何修复
  • 在 Chromium 中使用 WebCrypto 生成 RSA 密钥对

    以下代码适用于 Firefox 76 0 1 use strict let RSAKeys async gt RSAKeys await crypto subtle generateKey name RSA OAEP modulusLeng
  • node_modules 中的 webpack 4 图像:找不到模块

    问题 我使用 webpack 4 将 scss 编译为 css 并使用 MiniCssExtractPlugin 将 css 保存到不同的文件中 问题是 我无法加载通过 url 包含在 scss 文件内的图像和字体 运行开发或生产之间也没有
  • 如何初始化一个大小由 argc 和 argv 确定的二维数组?

    我正在编写代码 该代码将跟踪每次访问数组中的特定元素时的情况 数组本身将根据用户的输入动态分配 因此我所看到的函数都不是我正在寻找的 更具体地说 如何动态分配数组的行和列 然后将每个元素初始化为 0 前任 SIM A B int array
  • curl_multi_exec 显示不同的运行

    我只使用curl multi exec 来处理5 个url 现在我有这个奇怪的问题 当我在 xampp 上运行我的代码时 它运行完美 我可以看到 running 值初始化为 5 然后不断减少 但是 当我在其他本地主机 在arm架构上 上尝试
  • 使用 WebGL 索引缓冲区绘制网格

    3 个索引缓冲区 https stackoverflow com questions 2696182 3 index buffers问了一个更困难的问题 但我觉得他们的主要问题归结为我的 有没有办法使用索引缓冲区在 WebGL 中多次访问同
  • pyinstaller编译的文件有ssl问题,错误:185090050

    我有一些 python 代码可以在我的 Windows 机器上的 python ide 和 cmd 提示符下成功运行 当我用 pyinstaller 编译 到一个文件中 后 我收到以下错误 Traceback
  • flot.js - 位置垂直刻度,但被切断并居中

    我使用 flot js 绘制 x 轴上带有时间戳的图表 由于我在这些图表上会有很多刻度 所以我垂直旋转它们 这样它们就不会重叠 这工作正常 但标签集中在刻度上 并且没有提供足够的空间 因此它们被切断 我没有使用ticrotor插件滴答声 h
  • UDP/TCP 打洞 vs UPnP vs STUN vs?

    我尝试制作一个 P2P 程序 需要帮助来穿越客户端的 NAT 我在 stackoverflow 上读过很多问题 但我从来不知道通过 NAT 的所有方法的缺点和优点是什么 有多少路由器支持哪些方法 大公司常用哪些方法 BitTorrent T
  • OSError:输入/输出错误 - Google Colab

    Using h5py File path r 或 喀拉斯 model load weights path on h5文件产生以下错误 我已经在 Colab 上训练模型几个月了 从来没有遇到过这个问题 从云端硬盘下载后 相同的文件在我的计算机
  • 使用 graphql 公开动态模式

    我的应用程序动态处理模式 用户可以上传新域或更改现有域的定义 例如 我发布的产品具有如下用户模式 user fn ln age Later user can change this definition to include new pro