Ich versuche, ein GraphQL-Schema mit einem Typ, der verschiedene Felder hat, und ermöglicht es Ihnen auch auf eine OR: [...]
rekursiv mit den gleichen Argumente zu heften. Ich habe es wie die Arbeit dieserGraphQL - Spread Eingabe Args
input BookFilters {
_id: String
title: String
title_contains: String
title_startsWith: String
title_endsWith: String
OR: [BookFilters]
}
type Query {
allBooks(_id: String
title: String
title_contains: String
title_startsWith: String
title_endsWith: String
OR: [BookFilters]
): [Book]
}
die großen Werke, und diese Abfrage
{
allBooks(title_endsWith: "1", OR: [{ title: "2" }, {title:"3"}, {OR: [{title_contains: "Q"}, {OR:[{title:"Q"}]}]}]) {
_id
title
}
}
geht durch ganz gut.
Meine Frage ist, gibt es eine Möglichkeit, die Duplizierung zu entfernen? Im Idealfall würde ich es lieben, wenn
war gültig, aber es scheint nicht zu sein.
Bearbeiten - Ein Kommentar brachte Fragmente. Sie können nur von eine Art, richtig deklariert werden? Also würde ich immer noch einen neuen Typ erstellen, der alle meine Abfrageargumente auflistet, und dann ein Fragment daraus machen und alle Felder erneut auflisten?
Auch wenn das nicht so ist, scheint sich GraphQL immer noch nicht auf Eingabeargumente auszubreiten.
fragment BookFiltersFragment on BookFilters {
_id
}
type Query {
allBooks(...BookFiltersFragment): [Book]
}
die Fehler heraus auf dem ...
Das bin ich von Fragmenten erinnert. Überprüfen Sie dies: http://dev.apollodata.com/react/fragments.html – agm1984
Entschuldigung, dass Apollo, überprüfen Sie die Vanille-Dokumente, wenn Sie das verwenden. – agm1984
Ja - ich habe Fragmente gesehen. Sie sind jedoch nur für einen Typ deklariert, oder? Trotzdem, es scheint, ich kann immer noch nicht ein Fragment auf Abfrage Argumente zu verbreiten –