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

将查询参数从顶级传递到字段级

何玺
2023-03-14

我有一个如下所示的graphql查询:

userInfo (id: userId) {
   name
   email

   address {
      street
      country
   }
}

因此,名称和电子邮件将由名为详细信息的其余endpoint解析,但是地址字段需要由另一个名为地址的其余endpoint解析。>rest终结点还需要在userInfo中传递的userId(因为我的rest服务需要该字段)。我不确定,在这种情况下,我如何设计我的解析器?

同样,一个字段一旦解析,是否可以将数据发送到另一个字段?这在grapqhql中可能吗?

共有2个答案

王翰墨
2023-03-14

我想补充一下(到@daniel answer),您可以在查询中明确传递这个id(w/oaddressresolver changes)。

userInfo (id: userId) {
  name
  email

  address (userID: userId) {
    street
    country
  }
}

为了使(addressresolver)通用,我们可以使用两个参数源:

async (parent, args, context, info) => {
  // `parent` (user) can contain `id` property
  return getAddress(args.userID ? args.userID : parent.id)
}

因为您应该可以像RESTAPI一样只查询地址(对于给定的用户ID)。

丁翊歌
2023-03-14

在GraphQL中,每个字段都被称为解析为特定值。在GraphQL中。js,这个值要么是解析程序返回的值,要么,如果解析程序返回promise,则是该promise解析为的值。此值作为第一个参数传递给每个子字段的解析器。

实际上,这意味着即使您的类型有特定的字段,并且您返回的对象应该与这些字段匹配,它也可以包含任意数量的附加属性。

例如,您的userInfo解析器可以是这样的:

async (parent, args, context, info) => {
  const { name, email } = await getDetails(args.id)
  return {
    name
    email
    id: args.id,
  }
}

即使您没有id字段,我们仍然可以在返回的对象中包含该字段。这样,我们可以将一些附加信息(如参数)向下传递给任何子字段的解析程序。然后,在您的地址中解析器:

async (parent, args, context, info) => {
  // `parent` contains `name`, `email` and `id` properties
  return getAddress(parent.id)
}
 类似资料:
  • 我试图将一些信息从子项中的输入字段传递给父项。 到目前为止我所掌握的是: 34 this.setstate({searchstring:event.target.value},()=>{ >35 this.props.onchild(this.state.SearchString); 希望有人能帮忙。顺便说一句,我是个小人...

  • 我50%的希望渺茫:P.我(一开始)试图从一个线程的代码中更新GUI,但得到了NullException。在阅读了一段时间后,我了解到线程淹没了JavaFX应用程序窗口,为了从线程更新GUI,我需要使用以下代码: 所以我确实使用了这个代码,它确实允许我编辑我的主类的图形用户界面。不过,我的问题很简单。= 如何将父级的public void run()中的参数传递给这个?。例如,字符串tmpStri

  • 问题内容: 我想将值传递给javascript。如果可能的话,我该怎么办?如何在后备bean中接收它们? 问题答案:

  • 问题内容: 我们已经设置了一些参数来在Jenkins中执行构建(使用简单的“参数化构建”设置)。作业被设置为Maven测试。有没有办法以编程方式将这些参数传递到我们的Java代码中?我们需要基于通过Jenkins设置的参数来执行某些更新功能。 问题答案: 是的,您可以通过Maven执行将Jenkins参数传递给Java代码,如下所示: 请注意, $ JOB_PARAM_1 将捕获Jenkins上设

  • 是否可以将输入参数传递到游标SELECT语句WHERE子句中? 由于某种原因,我想它不起作用了。 以下是存储过程:

  • 问题内容: 我正在尝试对与php数组中的值匹配的行进行sql查询。 本质上我有一个像 并希望执行单个SQL查询以获取与该数组匹配的行 是否有捷径可寻?还是我必须手动构造查询字符串? 问题答案: 使用爆破功能,即