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
        }
      }
    }
  }
`;

FilmsはURLの配列です。
Q 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クエリを使用できます。 ちょっとした複雑さ:各@restディレクティブはおそらくそれ自身のネットワーク要求であることに注意してください。したがって、この場合、N + 1の要求があり、Nはルークが出演している映画の数です。

全てのコメント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クエリを使用できます。 ちょっとした複雑さ:各@restディレクティブはおそらくそれ自身のネットワーク要求であることに注意してください。したがって、この場合、N + 1の要求があり、Nはルークが出演している映画の数です。

また、 pathBuilder役立つ場合もあります。ドキュメントは、今のところtests/restLink.tsファイルにあります。

FilmsはURLの配列であり、urlプロパティを含むオブジェクトではありません。

この例を変更できますか?
https://codesandbox.io/s/yw2766yl4x

@fbarthoは、ネットワークリクエストに関する説明とボーナスのヒントをありがとう

この例でこのネストされたリクエストメソッドを使用する必要があるのは、APIの構造によるものだと思います。したがって、このデータを取得したい場合は、複数のネットワークリクエストを受け入れる必要があります。 しかし、ありがとう、私自身のデータベースとAPIを構築するのに役立ちます。

@fbartho

@exportディレクティブに関するドキュメントをさらに探していましたが、実際に見つかったのはこの例だけで、 @ peggyrayzisこの号で言及しています。 ペギーはまた、それはまだ実験段階にあり、公式にはリリースされていないと述べています。 自分が取り組んでいるプロジェクトで使用したいと思っていますが、公式にサポートされている機能であれば、より快適に感じるでしょう。 @matchのロードマップはどのようなものですか、まもなくリリースされる予定ですか?

@ Paddy-Hamiltonネストされた@rest(クエリ内で@export(as:ディレクティブを確実にサポートします。 apollo-link-restとapollo-link-stateの混合相互作用は本当にクールな機能ですが、apollo-linkレベルで議論する必要があると思います。 / cc @peggyrayzisここに何か洞察がありますか?

私は@matchディレクティブに慣れていないので、それがどこで議論されたかについてのポインタがあればいいのですが。

この問題は私にとっては解決されていません。https://codesandbox.io/s/6yv8y2z9v3をご覧ください。

単一のURLをロードします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 評価