Apollo-link-rest: Rest w / graphql kann nicht in derselben Abfrage kombiniert werden

Erstellt am 4. Apr. 2018  ·  9Kommentare  ·  Quelle: apollographql/apollo-link-rest

Zusammenfassung

Ich versuche, eine Restanforderung mit einer graphql-Anforderung zu vermischen. Beide Anforderungen beziehen sich auf dieselbe Ressource und funktionieren, wenn sie einzeln ausgeführt werden. Beim Versuch, die beiden zusammen auszuführen

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

        authors {
            id
            firstName
        }
    }

Ich erhalte den folgenden Fehler

image

Das Beispiel, auf das ich mich beziehe, finden Sie hier

blocking bug 🐛 has-reproduction help wanted 🛠

Hilfreichster Kommentar

Eigentlich habe ich gerade nachgesehen und es ist bereits Teil von Apollo-Utilities. @fbartho Ich wäre bereit, dies zu übernehmen, wenn noch niemand daran arbeitet. Scheint eine relativ einfache Lösung zu sein. Ich muss mir allerdings verschiedene Testszenarien vorstellen ...

Alle 9 Kommentare

Hey @ chimon2000 - das klingt nach einem großen Fehler. Fühlen Sie sich wohl, wenn Sie einen Unit-Test für uns einreichen, der dies reproduzieren könnte?

Alternativ wäre eine PR, die dies behebt, noch besser. Ich helfe gerne weiter, aber meine aktuelle Haupttestumgebung verwendet keinen echten GraphQL-Server. Daher bin ich nicht ganz darauf eingestellt, zu überprüfen, ob dies funktioniert.

Hey @fbartho , danke für die schnelle Antwort. Ich habe mein Beispiel-Repo hinzugefügt, das den Code enthält, der erforderlich ist, um das Problem mit Beispielen für Winkel- und (p) -Reaktionen zu reproduzieren, aber ich kann auch hier einen Unit-Test hinzufügen.

Ich bin nicht besonders geschickt darin, wie Apollo-Links funktionieren.

Hey @fbartho , ich habe einen PR- umschaut - es ist in der Tat ein Problem, hoffe, es ist nützlich.

Wenn man sich die Quelle ansieht, scheint es das einzige Mal zu sein, dass forward aufgerufen wird, um die Operation an den nächsten Link zu senden, here .

Ich denke, wenn wir das Zusammenführungsverhalten unterstützen möchten, müssen wir die Abfragestreifen untersuchen, die nicht ruhen, und sie an den nächsten Link weiterleiten.

Ich denke, im Grunde wäre es ausreichend, diesen Abschnitt aus dem Apollo-Link-Status zu kopieren (es könnte sogar sinnvoll sein, sich mit den Betreuern abzustimmen, um diese Art von Logik in ein separates Paket zu extrahieren, da dies für Linkbuilder wirklich nützlich erscheint).

Eigentlich habe ich gerade nachgesehen und es ist bereits Teil von Apollo-Utilities. @fbartho Ich wäre bereit, dies zu übernehmen, wenn noch niemand daran arbeitet. Scheint eine relativ einfache Lösung zu sein. Ich muss mir allerdings verschiedene Testszenarien vorstellen ...

@ Paulpdaniels Alter , das würde ich lieben. Bitte nimm es an.

Spezifische gefährliche Szenarien Ich möchte sicherstellen, dass wir Folgendes unterstützen / nicht brechen:

  • Verschachteln von @rest() in @rest() Abfragen mit `@export (as:…) in Verwendung
  • Verschachteln von @rest() in Server-Graphql-Abfragen mit `@export (as:…) in Verwendung
  • Verschachteln von @rest() in @client Abfragen
  • Stellen Sie sicher, dass die Codepfade des Typename Patcher dadurch nicht beschädigt werden!

Die Export-Direktive scheint in Server-Graphql-Abfragen nicht zu funktionieren. Ich erhalte die folgende Fehlermeldung: Unbekannte Direktive "export".

@marcelombc es würde von Ihrer Server-Implementierung abhängen Ich denke, apollo-server sofort mitgeliefert , aber ich denke nicht, dass es erforderlich ist, spezifikationskonform zu sein.

@ Paulpdaniels Du hast recht. Ich verwende Graphen auf dem Server und musste nur eine benutzerdefinierte Direktive erstellen, um @export zu unterstützen. Danke für Ihre Hilfe.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen