Хотя nexus
был создан для использования вместе с prisma
, на самом деле это просто построитель схем. Вы можете легко использовать его для создания схемы, даже не используя Prisma. Например:
export const User = prismaObjectType({
name: 'User',
definition(t) {
t.list.field('comments', {
type: 'Comment',
resolve(root, args, ctx) {
return getComments();
},
});
},
})
export const Comment = prismaObjectType({
name: 'Comment',
definition(t) {
t.string('body');
},
})
Здесь getComments
может возвращать массив объектов комментариев или Обещание, которое разрешается в один. Например, если вы вызываете какой-то другой API, вы обычно возвращаете Promise с результатами вызова. Как показано выше, распознаватель предоставляет родительское значение, аргументы поля и объект контекста - вы можете использовать любую из этой информации при определении способа разрешения определенного поля.