Я все еще немного новичок в графике и Аполлоне.Но мне любопытно, если бы я создал поисковый запрос, который возвращает объединение двух типов, как бы я изменил объединенные результаты этого объединения.Используя пример Apollo Docs ( Союзы и интерфейс ):
union Result = Book | Author
type Book {
title: String
}
type Author {
name: String
}
type Query {
search: [Result]
}
const resolvers = {
Result: {
__resolveType(obj, context, info){
if(obj.name){
return 'Author';
}
if(obj.title){
return 'Book';
}
return null;
},
},
Query: {
search: () => { ... }
},
};
const server = new ApolloServer({
typeDefs,
resolvers,
});
server.listen().then(({ url }) => {
console.log(`? Server ready at ${url}`)
});
После завершения работы резольверов Book и Author, скажем, у меня 200 результатов, 50 книг и 150 авторов.,Если бы я хотел ограничить их до 100 из них, отсортированных по алфавиту, как бы я получил доступ к разрешенному массиву, прежде чем вернуть его клиенту?Определения типа сервера Apollo имеют интерфейс IResolverOptions с функцией разрешения, но если я добавлю это в свой преобразователь результатов, то получится сообщение об ошибке, говорящее о том, что Result.resolve определен в преобразователе, но не в схеме.