#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