当前位置: 首页 > 知识库问答 >
问题:

使用GraphQL java工具检索请求的GraphQL字段,无需等待父级解析

袁泓
2023-03-14

我希望优化运行在graphqljavagraphqljava工具上的GraphQLendpoint。

我有以下模式:

{
  product(id: String) {
    id
    title
    offer {
      price
    }
  }
}

idtitle来自服务A,价格来自服务B。

现在,我有一个GraphQLQueryResolver返回一个CompletableFuture

但是,这意味着我必须等待服务A返回ProductResponse,才能开始查询服务B的报价响应。这两个服务只需要ID作为输入,因此可以并行执行。有没有办法在不调整模式的情况下并行执行两个服务调用?


共有1个答案

左翰海
2023-03-14

我认为你可以考虑使用阿波罗联盟,它以通用的方式解决,但仍然是一个优雅的方式。

试试看这个-https://github.com/apollographql/federation-demo

 类似资料:
  • 我假设有两个表t_document和t_employee。表t_document有两个字段,id和owner_id,owner_id与t_employee有外键关系。表t_employee有两个字段,id和name。我的难题是,如何设置一个JPA实体(使用1. x版),以便以下NamedNativeQuery获取一个文档以及所有者的姓名并正确填充实体? 首先,我介绍了文档类的基本开头。

  • 我正试图在我的项目中禁用< code>GraphQL内省,但在我使用的特定框架上运气不佳。有些文章说它可以在< code>CcodeRegistry模块中完成,但那是一个只读的反编译源代码。有人用< code > graph QL-Java-kickstart 框架实现了这一点吗? 以下是我的pom文件中的依赖项:

  • 问题内容: 我正在尝试编写一个JS代码,如果给定的数字已经存在于数据库中,它将取消“ btn_submit”按钮.onclick事件。我使用AJAX向数据库查询给定的编号,并确定是否应将数据发送到将上传问题的.php站点。为了确定这一点,我需要numOfRows变量的值,但是因为我在AJAX中将其设置为0,所以validation()函数将在我的AJAX查询完成之前完成,这将导致始终表示给定数字不

  • 问题内容: 在Bash中,可以通过追加在后台执行命令。如何在Python中完成? 问题答案: 我用。我在模块级别创建一个单例线程池,然后用于启动任务。 该命令给了我一个未来,我可以将它无限期地与其他未来添加到列表中,直到我想收集全部或部分结果为止。 出于所有逻辑和理由,是一个THREAD池而不是一个进程池。 示例(只要安装了请求,就可以在Python 2和3中使用): 这些请求将同时执行,因此运行

  • 问题内容: 目前,我正在编写使用ajax进行搜索的webdriver测试。如果在键入搜索内容之后并按Enter键之前添加显式等待,则测试效果很好。 但 失败。我正在使用1个虚拟CPU在ec2上运行测试。我怀疑,即使在发送与搜索相关的GET请求之前,我也按回车键;如果在建议之前按回车键,它将失败。 有没有更好的方法来添加显式等待? 问题答案: 您确实可以添加一个明确的等待,以等待诸如 请参阅:htt

  • 是否可以在不等待响应的情况下发送HTTP请求? 我在做一个物联网项目,需要记录传感器的数据。在每一个设置中,都有许多传感器,一个中央协调器(主要由Raspberry Pi实现)从传感器收集数据,并通过Internet将数据发送到服务器。 提前感谢! 编辑:传感器是无线的,但他们使用的技术在发送到协调器时很少(或没有)延迟。此协调器必须通过Internet发送数据。但是,假设互联网连接不好。因为这将