Wie verwalte ich Cursor und Sortierung in Relay?

Wir haben einen graphql-Server (nicht in Javascript geschrieben), der eine paginierte Liste von Objekten bereitstellt. Wir versuchen, uns an die Relay-Spezifikation zu halten, aber wir haben einen interessanten Fall gefunden, der einer Klärung bedürfen könnte.

Speziell: Dürfen Cursor von anderen Eingaben für die Verbindung abhängen? Ähnlich zuhttps: //github.com/graphql/graphql-relay-js/issues/2, unsere Verbindung verwendet ein sort_key-Argument, das die Sortierreihenfolge der zurückgegebenen Liste bestimmt. Abhängig von der angegebenen Sortierreihenfolge kann die Kante für ein Objekt unterschiedliche Cursorwerte zurückgeben (da der Server jeweils unterschiedliche Informationen benötigt, um das nächste Objekt zu bestimmen). Eine sorgfältige Lektüre vonhttps: //facebook.github.io/relay/docs/guides-mutations.html#range-ad weist darauf hin, dass dies nicht zulässig ist; Mutationen, die eine neu erstellte Kante zurückgeben, müssen einen einzelnen Cursor zurückgeben, der universell auf alle möglichen Listen angewendet werden kann, in denen diese Kante auftreten kann. Wie löst Facebook dieses Problem?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage