Добавление пользовательских преобразователей и типов GraphQL в схему Prisma / Nexus - PullRequest
1 голос
/ 12 мая 2019

Использование: TypeScript , Prisma , MySQL , GraphQLServer , ApolloClient , построение схемы следующим образом:

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)

1 Ответ

0 голосов
/ 12 мая 2019

Хотя 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 с результатами вызова. Как показано выше, распознаватель предоставляет родительское значение, аргументы поля и объект контекста - вы можете использовать любую из этой информации при определении способа разрешения определенного поля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...