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

如何级联GraphQL?

谭成业
2023-03-14

我目前使用“客户端GraphQL服务器”将RESTfulendpoint封装到GraphQLendpoint。

但是如果服务器端也是GraphQLendpoint呢?如何以轻量级的方式在GraphQL服务器中对另一个GraphQL服务器进行排队?

或者更一般地,如果我有GraphQL服务器“a”和“B”,提供微服务,那么我使用GraphQL服务器“C”来集成“a”和“B”。我是否应该使用某种使用apollo-client的“服务器端客户端”来对“C”中的“A”和“B”进行排队?

共有1个答案

邴奇逸
2023-03-14

我从未见过客户端GraphQL以这种方式使用,但我想它会像往常一样工作。您的查询带有返回数据的解析器。在本例中,您将使用GraphQL请求而不是REST api请求,但原理是相同的。

请记住,GraphQL与其他API没有什么不同。您将HTTP请求(对于GraphQL,所有请求都是POST)发送到URLendpoint(对于GraphQL,URL始终相同),并将参数数据与您的请求一起发送(对于GraphQL,这是整个查询的所在)。

我想您可以将客户机GraphQL查询中的变量转换为服务器GraphQL查询中的变量,并以这种方式构造查询。

$ curl -XPOST -H "Content-Type:application/graphql"  -d 'query RootQueryType { count }' http://localhost:3000/graphql

响应如下所示:

{
  "data": {
    "count": 0
  }
}

只需使用您在客户机上使用的请求库来访问REST客户机,但要修改它以匹配您试图访问的GraphQL服务器的API。

 类似资料:
  • 映射器支持可配置的概念 cascade 行为对 relationship() 构造。这是指相对于特定对象在“父”对象上执行的操作 Session 应传播到该关系引用的项(例如“子”对象),并受 relationship.cascade 选择权。 层叠的默认行为仅限于所谓的层叠 保存更新 和 合并 设置。级联的典型“可选”设置是添加 删除 和 删除孤儿 选项;这些设置适用于相关对象,这些对象仅在附加

  • 本文向大家介绍Extjs4.0 ComboBox如何实现三级联动,包括了Extjs4.0 ComboBox如何实现三级联动的使用技巧和注意事项,需要的朋友参考一下 很多网友在问,Extjs4.0 ComboBox如何实现,好在之前用3.x实现过一个三级联动,如今用Extjs4.0来实现同样的联动效果。其中注意的一点就是,3.x中的model:'local'在Extjs4.0中用queryMode:

  • 中间件函数是可以在应用程序的请求 - 响应周期中访问context object和下一个中间件函数的函数。 这些函数用于修改任务的请求和响应对象,例如解析请求主体,添加响应头等。Koa更进一步,产生'downstream' ,然后将控制回流'upstream' 。 此效果称为cascading 。 以下是一个中间件功能的简单示例。 var koa = require('koa'); var app

  • 问题内容: 如何在hibernate状态下使用层叠和注释? 但是我仍然怀疑: 我有这种情况: 当我尝试时,发生错误。我不想保存产品和包装。我只想初始化并将它们设置到我的包对象中。 那可能吗? 问题答案: 请参阅有关此问题的hibernate文档。例如,您可以使用例如 要么

  • 是否可以在不映射一对多关系的情况下设置级联? 我有两个实体: 和 如果我试图删除一个用户,并且存在该用户的任何记录,那么由于外键的原因,它显然会失败。我想在删除用户之前删除该用户的所有记录。我看到两种选择: > 映射s为关系中的,并设置。 在删除用户之前手动删除它们 有没有第三个选项,如何在用户实体中设置无映射记录的级联?

  • 我没有那么多的冬眠。所以,当反转和级联进入画面时,陷入一个点。我知道,inverse告诉hibernate拥有实体,该实体负责更新它们的关系,Cascade会告诉hibernate首先保存实体,然后保存其从属实体。 我只是想知道是否必须在同一个实体中声明级联="all"和反转="true"。我们可以通过其他实体中的反转和级联属性将一个声明为拥有实体吗?请说明这一点? 谢谢。