Как добавить преобразователи полей в синтаксисе graphQL apollo?Используя синтаксис graphql, если у меня была лекция с вопросами, я могу сделать это:
const LectureType = new GraphQLObjectType({
name: 'LectureType',
fields: () => ({
id: { type: GraphQLID },
questions: {
type: new GraphQLList(QuestionType),
resolve: ({ _id }, args, { models }) => models.Lecture.findQuestions(_id),
},
}),
});
Каков эквивалентный синтаксис с использованием apollo graphQL?Я думаю, что я могу сделать это определение типа с этим решателем:
type QuestionType {
id: String,
}
type LectureType {
id: String,
questions: [QuestionType],
}
const getOne = async ({ args, context }) => {
const { lecture, question } = constructIds(args.id);
const oneLecture = await model.get({ type: process.env.lecture, id: lecture });
oneLecture.questions = await model
.query('type')
.eq(process.env.question)
.where('id')
.beginsWith(lecture)
.exec();
return oneLecture;
};
Проблема в том, что я заполняю вопросы вручную для каждого средства разрешения, а не на уровне схемы.Это означает, что мои запросы будут заполняться только той фиксированной глубиной, которую я указываю, а не на основе фактически запрашиваемых параметров возврата запроса.(Я знаю, что здесь нет основы 1: 1, так как я переключаюсь с монго на динамо, но кажется, что эта часть решателя должна быть независимой.)