Laut Ihrem Kommentar, dass Sie NoSQL-Datenbank verwenden, die sowohl Zeichenfolgen als auch Ints im selben Feld platzieren können, sollten Sie mit GraphQLString
gehen. Wenn Sie eine neue Instanz des oben genannten Objekts erstellen, können Sie eine resolve
-Methode für das Feld value
erstellen, die überprüft, ob der übergebene Wert string
oder int
ist (natürlich wäre es immer eine Zeichenkette wegen GraphQLString
Typ, es kann jedoch eine Zeichenkette wie "123"
sein kann zu int) geparst werden - entsprechend können Sie vor dem Speichern in der Datenbank ein Parsing durchführen. Auf der anderen Seite, wenn Sie die Daten aus der Datenbank abrufen, wird es immer als string
in der graphql Darstellung auftreten - wenn dies kein Fall ist, denke ich, dass dies eine einfache Lösung sein könnte.
Wenn Sie jedoch mit diesem Vorschlag nicht zufrieden sind, habe ich Angst, dass Sie GraphQL nicht wie gewünscht austricksen können. Jedes Feld kann nur eine einzige Typdefinition erhalten.
okay, wenn Sie den Wert 'integer' sowie' string' dann gemacht haben, welchen Typ würden Sie für die Datenbank in Betracht ziehen? –
@ p0k8_ Der Zweck von GraphQL ist das Verstecken von Datenbankdetails. Es spielt keine Rolle, ob dieser Wert aus der Datenbank A oder B oder einer Datei oder einer anderen API stammt. Es ist also durchaus zulässig, Unionstypen zu haben –
graphql liefert 'int', aber das Datenbankschema für den Typ ist' string' then ?? –