Используя: Машинопись, Призма, MySQL, GraphQLServer, ApolloКлиент, строим схему следующим образом:
const schema = makePrismaSchema({
// Provide all the GraphQL types we've implemented
types: [Query, Mutation, User, Post],...
А потом:
const server = new GraphQLServer({
schema,
context: { prisma }
});
Как совместить это с пользовательскими преобразователями и типами, не связанными с SQL?
(Я также хотел бы вызвать некоторую конечную точку REST с помощью GQL)



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Хотя 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, вы обычно возвращаете обещание с результатами вызова. Как показано выше, преобразователь предоставляет родительское значение, аргументы поля и объект контекста — вы можете использовать любую из этих сведений при определении того, как разрешать конкретное поле.
Некоторым не сразу очевидно, что вам нужно будет добавить его к типам при создании схемы: ` makePrismaSchema({ types: [OtherTypes..., Comment], }) `