Запрос запроса на graphiql

#javascript #graphiql

#javascript #graphiql

Вопрос:

Поскольку я уже благодарю вас за пространство, у меня следующая проблема с graphql, я следовал командам общедоступного сайта api, AniList https://anilist.gitbook.io/anilist-apiv2-docs/overview/graphql/getting-started , Я могу получить много информации, но то, что я хотел, я не получаю, я хотел бы поймать персонажей аниме, если кто-нибудьмогу ли я помочь, был бы очень благодарен, я очень непрофессионал в этом вопросе, я оставлю код здесь

 var query = `
{Media (id: 1, type: ANIME) { 
    id
    title {
      romaji
      english
      native
    }
  episodes
  type
  averageScore
  seasonYear
  episodes
  duration
  characters {
    nodes {
      image {
        large
        medium
      }
    }
  }
  coverImage {
    extraLarge
  }
  }
}
`;


var url = 'https://graphql.anilist.co',
    options = {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json',
            'Accept': 'application/json',
        },
        body: JSON.stringify({
            query: query,
        })
    };

fetch(url, options).then(handleResponse)
                   .then(handleData)
                   .catch(handleError);

function handleResponse(response) {
    return response.json().then(function (json) {
        return response.ok ? json : Promise.reject(json);
    });
}

function handleData(data) {
    //console.log(data.data.Media.title.userPreferred);
    //document.getElementById("anime").innerHTML = data.data.Media.title.userPreferred;
    
    document.getElementById("title").innerHTML = data.data.Media.title.english;
    document.getElementById("type").innerHTML = data.data.Media.type;
    document.getElementById("episodes").innerHTML = data.data.Media.episodes;
    document.getElementById("averageScore").innerHTML = data.data.Media.averageScore;
    document.getElementById("duration").innerHTML = data.data.Media.duration;
    document.getElementById("episodeList").innerHTML = data.data.Media.episodes;
    document.getElementById("dateanime").innerHTML = data.data.Media.seasonYear;
    document.getElementById("anime_image").setAttribute("src", data.data.Media.coverImage.extraLarge );
    document.getElementById("anime_person").setAttribute("src", data.data.Media.characters.image.large );

     
}

function handleError(error) {
    alert('Error, check console');
    console.error(error);
} 
 #main, .autofill {
    -webkit-box-flex: 1;
    -ms-flex: 1;
    flex: 1;
    margin: 15px;
    position: absolute;
    z-index: 1;
    top: -5px;
    font-size: 10px;
    text-shadow: 1px 1px 1px #0000007d;
    line-height: 2.9rem
} 
 <div class="autofill">
    <strong>name: </strong><span id="title"></span>
    <br />
    <strong>type: </strong> <span id="type"></span><br />
    <strong>N. episodes: </strong> <span id="episodes"></span><br />
    <strong>Score: </strong> <span id="averageScore"></span><br />
    <strong>duration: </strong> <span id="duration"></span> <br />
    <strong>Status: </strong> <span id="episodeList"> </span> <br />
    <strong>In: </strong> <span id="dateanime"></span><br />
    <span>
       <img src="" id="anime_image"> <br />
        <img src="" id="anime_person"> <br />
    </span>
</div> 

Ответ №1:

Вы можете сделать:

 characters = data.data.Media.characters.nodes
 

Это вернет массив, который вы можете перебирать, чтобы получить каждый символ:

 characters[0].image.large