Apollo-link-rest: 同じクエリで残りとgraphqlを組み合わせることはできません

作成日 2018年04月04日  ·  9コメント  ·  ソース: apollographql/apollo-link-rest

概要

残りのリクエストをgraphqlリクエストと混ぜ合わせようとしています。 両方のリクエストは同じリソースを参照し、個別に実行すると機能します。 ただし、2つを一緒に実行しようとすると

const QUERY_AUTHORS_AND_PEOPLE = gql`
    query {
        people @rest(type: "[Person]", path: "authors/") {
            firstName
        }

        authors {
            id
            firstName
        }
    }

次のエラーが発生します

image

私が参照している例を

blocking bug 🐛 has-reproduction help wanted 🛠

最も参考になるコメント

実際にチェックしたところ、すでにapollo-utilitiesの一部になって@fbartho誰もまだ取り組んでいない場合は、これを喜んで引き受けます。 比較的簡単な修正のようです。 ただし、いくつかのさまざまなテストシナリオを想像する必要があります...

全てのコメント9件

ねえ@ chimon2000-これは大きなバグのように聞こえますが、これを再現できるユニットテストを提出しても問題ありませんか?

あるいは、これを修正するPRはさらに良いでしょう。 喜んでお手伝いしますが、現在のメインテスト環境では実際のGraphQLサーバーを使用していないため、これが機能していることを確認する準備が整っていません。

ねえ@fbartho 、迅速な対応に感謝します。 角度と(p)reactの両方の例で問題を再現するために必要なコードを含むサンプルリポジトリを追加しましたが、これの単体テストの追加についても確認できます。

私はアポロリンクがどのように機能するかについて特に熟達していません。

ねえ@fbartho 、私はあなたたちが

ソースを調べると、次のリンクに操作を送信するためにforwardが呼び出されるのは、 hereです。

マージ動作をサポートしたい場合は、クエリストリップを調べて、残りの部分を取り除き、次のリンクに転送する必要があると思います。

基本的に、このセクションをapollo-link-stateからコピーするだけで十分だと思います(リンクビルダーにとって本当に便利なように見えるので、メンテナと調整してその種のロジックを別のパッケージに抽出することも理にかなっています)。

実際にチェックしたところ、すでにapollo-utilitiesの一部になって@fbartho誰もまだ取り組んでいない場合は、これを喜んで引き受けます。 比較的簡単な修正のようです。 ただし、いくつかのさまざまなテストシナリオを想像する必要があります...

@paulpdanielsおい、私はそれが大好きです。 どうぞお受けください。

特定の危険なシナリオ私たちがサポートしている/壊れていないことを確認したい:

  • `@export(as:…)を使用して@rest()クエリ内に@rest()ネストする
  • `@export(as:…)を使用したserver-graphqlクエリ内に@rest()ネストする
  • @clientクエリ内に@rest()ネストする
  • これがTypenamePatcherコードパスを壊さないことを確認してください!

exportディレクティブはserver-graphqlクエリ内では機能しないようです。 次のエラーが発生します:不明なディレクティブ「export」。

@marcelombcサーバーの実装によって異なりますが、 apollo-serverはそのままで付属していますが、仕様に準拠している必要はないと思います。

@paulpdanielsその通りです。 サーバーでグラフェンを使用していますが、@ exportをサポートするカスタムディレクティブを作成する必要がありました。 ご協力いただきありがとうございます。

このページは役に立ちましたか?
0 / 5 - 0 評価