GraphiQL, возвращающий нулевые значения при получении всех записей

Я пытаюсь построить простую схему GraphQL. У меня есть конечная точка json-сервера, работающая на localhost, которая возвращает некоторые простые данные json.

Я могу вернуть пользователя при указании идентификатора. Запрос для этого в схеме выглядит так:

staff: {
    type: StaffType,
    args: { id: { type: GraphQLInt }},
    resolve(parentValue, { id }) {
        return axios.get(`http://localhost:3000/staff/${id}`)
            .then(resp => resp.data);
    }
}

Запрос GraphQL выглядит так:

{
    staff(id: 1){
        id
        Name
    }
}

и это возвращает это в клиенте GraphiQL:

{
  "data": {
    "staff": {
      "id": 1,
      "Name": "John Doe"
    }
  }
}

Моя проблема начинается, когда я пытаюсь вернуть всех пользователей. Я создал другой запрос, чтобы попытаться просто получить все из http://localhost:3000/staff без переданных аргументов. Если я перехожу непосредственно к этому URL в браузере, он возвращает всех пользователей, как и ожидалось. Однако, если я попробую его через GraphiQL, он, похоже, вернет объект, но все поля будут нулевыми. В GraphiQL или на консоли нет ошибок. Примеры кода ниже:

Запрос в схеме

allStaff: {
    type: StaffType,
    resolve(parentValue, args) {
        return axios.get(`http://localhost:3000/staff/`)
            .then(resp => resp.data);
    }
}

Запрос GraphiQL

{
  allStaff {
    id
    Name
  }
}

Результат я получаю

{
  "data": {
    "allStaff": {
      "id": null,
      "Name": null,
    }
  }
}

если я поддерживаю журнал resp.data, возвращаются данные, и, как я уже сказал, конечная точка возвращает данные, когда я обращаюсь к ним напрямую через браузер, точно так, как ожидалось.

Я что-то пропустил?

Спасибо

1 ответ

Решение

Данные JSON могут быть массивом пользовательских объектов, но GraphQL все еще ожидает только один. Это потому, что в вашей схеме вы определили тип возвращаемого значения для allStaff как StaffType, Вам нужно обернуть его оберткой List, например так:

type: new GraphQLList(StaffType),
Другие вопросы по тегам