Apollo-link-rest: 基于父查询结果的嵌套查询参数

创建于 2018-03-23  ·  7评论  ·  资料来源: apollographql/apollo-link-rest

我想知道是否有可能执行嵌套查询,其中子查询参数基于父结果。
例如基于给定的文档示例

const getLukeRestLink = gql`
  query luke {
    Luke @rest(type: "Person", path: "people/1/") {
      name
      films {
        film @rest(type: "Film", path:  filmUrl) { // the filmUrl is the url that is returned in the films field
          title
        }
      }
    }
  }
`;

电影是一堆网址。
是否可以将URL传递给电影查询路径参数?

question❔

最有用的评论

这是可行的@ Paddy-Hamilton! 使用您的示例代码:

  query luke {
    Luke @rest(type: "Person", path: "people/1/") {
      name
      films {
        url @export(as: "url")
        film @rest(type: "Film", path: ":url") {
          title
        }
      }
    }
  }

@export(as: …)指令可让您公开先前选择的数据,以供进一步嵌套的剩余查询使用。 小麻烦:请记住,每个@rest指令可能都是它自己的网络请求,因此在这种情况下,您将有N + 1个请求,其中N是Luke所在的电影数量。

所有7条评论

这是可行的@ Paddy-Hamilton! 使用您的示例代码:

  query luke {
    Luke @rest(type: "Person", path: "people/1/") {
      name
      films {
        url @export(as: "url")
        film @rest(type: "Film", path: ":url") {
          title
        }
      }
    }
  }

@export(as: …)指令可让您公开先前选择的数据,以供进一步嵌套的剩余查询使用。 小麻烦:请记住,每个@rest指令可能都是它自己的网络请求,因此在这种情况下,您将有N + 1个请求,其中N是Luke所在的电影数量。

您可能还会发现pathBuilder有用,文档现在在tests/restLink.ts文件中。

电影是URL的数组,它不是包含url属性的对象。

您可以修改此示例吗?
https://codesandbox.io/s/yw2766yl4x

@fbartho感谢您的解释和有关网络请求的奖金提示。

我认为在此示例中使用此嵌套请求方法的需要是由于api的结构所致,因此如果我想获取此数据,则只需要接受多个网络请求即可。 但是,谢谢,这将有助于构建我自己的数据库和api。

@fbartho

我一直在寻找有关@export指令的更多文档,但实际上只发现了这个示例, @peggyrayzis示例。 佩吉还提到它仍处于实验阶段,尚未正式发布。 我希望在我正在从事的项目中使用它,但是如果它是官方支持的功能,它将感觉更舒适, @match的路线图是什么,它将很快发布吗?

@ Paddy-Hamilton我们肯定在嵌套@rest(查询中支持@export(as:指令。 阿波罗-链结-休息和阿波罗-链结-状态的混合相互作用是一个非常酷的功能,但是我认为需要在阿波罗-链结的层面上进行讨论。 / cc @peggyrayzis您对这里有任何见解吗?

我不熟悉@match指令,所以我很乐意讨论该指令的任何指针。

这个问题对我来说还没有解决,请看一下https://codesandbox.io/s/6yv8y2z9v3

它将加载一个网址https://swapi.co/api/https://swapi.co/api/films/2/,https://swapi.co/api/films/6/,https://swapi.co/api/films/3/,https://swapi.co/api/films/1/,https://swapi.co/api/films/7/

问题是电影是一个阵列。 我认为pathBuilder不能解决这个问题。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

ssuvorov picture ssuvorov  ·  4评论

Simply007 picture Simply007  ·  5评论

kevinrobayna picture kevinrobayna  ·  6评论

karensg picture karensg  ·  5评论

timhwang21 picture timhwang21  ·  7评论