子クエリの引数が親の結果に基づいているネストされたクエリを実行できるかどうか疑問に思っています。
例:与えられたドキュメントに基づく
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をフィルムクエリパス引数に渡すことはできますか?
これは実行可能です@ 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を構築するのに役立ちます。
@ 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では解決できないと思います。
最も参考になるコメント
これは実行可能です@ Paddy-Hamilton! サンプルコードの使用:
@export(as: …)
ディレクティブを使用すると、以前に選択したデータを公開して、さらにネストされたRESTクエリを使用できます。 ちょっとした複雑さ:各@rest
ディレクティブはおそらくそれ自身のネットワーク要求であることに注意してください。したがって、この場合、N + 1の要求があり、Nはルークが出演している映画の数です。