Где написать распознаватель, когда я не использую GraphQLObjectType? - PullRequest
0 голосов
/ 24 сентября 2018

Я пишу проект graphql с экспрессом.Я определил объект User следующим образом:

const User = new GraphQLObjectType({
  name: 'User',
  fields: () => ({
    name: {
      type: new GraphQLNonNull(GraphQLString),
    },
    friends: {
      type: HistoricalPerformanceEvaluation,
      async resolve(user) {
        return db.users.findFriendsFor(user.id);
      },
    },
  }),
});

Однако я хотел бы использовать синтаксис graphql для создания схемы и определить ее следующим образом:

type User {
  name: String
  friends:  [User]!
}

Куда мне написатьрешатель сейчас?Я не использую Аполлона.

Ответы [ 2 ]

0 голосов
/ 26 сентября 2018

Используя справочную библиотеку graphql-js , вы можете передать корневой объект в выполнение GraphQL.Все запросы и мутации верхнего уровня ищутся в этом объекте, а дополнительные вложенные поля запроса ищутся в объектах, возвращаемых из этого, и т. Д.

Пример на первой странице graphql-js включает этоobject:

// The root provides a resolver function for each API endpoint
var root = {
  hello: () => {
    return 'Hello world!';
  },
};

Этот объект затем передается в качестве параметра в точку входа graphql .

0 голосов
/ 24 сентября 2018

Вы можете использовать функцию addResolveFunctionsToSchema из 'graphql-tools' для создания схемы с функциями распознавателя.

import { addResolveFunctionsToSchema } from 'graphql-tools';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...