Я начинающий студент, работаю над личным проектом. Я пытаюсь создать простое веб-приложение, которое запрашивает список героев из API (https://docs.stratz.com/index.html) и отображает их идентификатор и отображаемое имя на веб-странице. Я успешно сделал нечто подобное с запуском SpaceX, но я не могу заставить это работать.
После настройки моего сервера и запуска на локальном порту я получаю сообщение об ошибке «Ожидаемый итерируемый, но не найден для поля RootQueryType.Heroes». Я почти уверен, что это потому, что в моей схеме я определил мой RootQuery следующим образом:
const HeroType = new GraphQLObjectType({
name: 'Hero',
fields: () => ({
id: {type: GraphQLInt },
displayName: {type: GraphQLString },
})
});
// Root Query
const RootQuery = new GraphQLObjectType({
name: 'RootQueryType',
fields:{
//list of heroes
Heroes: {
type: new GraphQLList(HeroType),
// This is where we get data
resolve(parent, args){
return axios
.get('https://api.stratz.com/api/v1/Hero')
.then(res => res.data);
}
}
},
});
Я думаю, что, поскольку я определил героев как GraphQLList
, я получаю ошибку, потому что Я не получаю итерируемый или массив обратно с сервера. В своих документах их сервер возвращает пример, который выглядит следующим образом:
{
"additionalProp1": {
"id": 0,
"name": "string",
"displayName": "string",
"shortName": "string",
"abilities": [
{
"heroId": 0,
"gameVersionId": 0,
"slot": 0,
"abilityId": 0
}
],
"roles": [
{
"heroId": 0,
"roleId": 0,
"gameVersionId": 0,
"level": 0
}
],
"talents": [
...
// the list goes on and on with all sorts of info
Пожалуйста, исправьте меня, если я ошибаюсь, но я считаю, что моя проблема в том, что моя схема. js файл не работает с «AdditionalProp1», как указано в их примере. Может ли кто-нибудь указать мне правильное направление исправления моей схемы, чтобы справиться с этим?