Почему это работает? Вызов API Spotify node.js - PullRequest
0 голосов
/ 23 января 2019

Я новичок в узле и работаю над вызовом API через node.js, и я немного растерялся, почему это работает.Я с легкостью выполнял другие вызовы API через узел, так как было легко выяснить, как настроить таргетинг на различные поля и т. Д., Но я так и не получил ссылку на API spotify, и я запутался, как данные data.tracks.items.artists.name давали.меня имя художника?

Я знаю, что это невежественный вопрос, но я действительно хочу понять, как это работает, а не просто заставить его работать.

function song() {
var nodeArgs = process.argv;
var SongName = "";
for (var i = 3; i < nodeArgs.length; i++) {
    if (i > 3 && i < nodeArgs.length) {
        SongName = SongName + "+" + nodeArgs[i];
    }
    else {
        SongName += nodeArgs[i];
    }
}

var Spotify = require('node-spotify-api');
var spotify = new Spotify({
    id: "id",
    secret: "secret"
});

spotify.search({ type: 'track', query: SongName, limit: 1 }, function (err, data) {
    if (err) {
        SongName = "";
        console.log("Artist: " + songData.artists[0].name);
        console.log("Song Title: " + songData.name);
        console.log("Preview Track: " + songData.preview_url);
        console.log("Album: " + songData.album.name);
        song();
    }

    for (var i = 0; i < data.tracks.items.length; i++) {
        var songData = data.tracks.items[i];
        console.log("Artist: " + songData.artists[0].name);
        console.log("Song Title: " + songData.name);
        console.log("Preview Track: " + songData.preview_url);
        console.log("Album: " + songData.album.name);
    }
});
}

1 Ответ

0 голосов
/ 23 января 2019

Краткий ответ - конечная точка API трека отвечает Object Model, который также содержит объекты исполнителя - это массив объектов исполнителя, где объект исполнителя содержит ключ name.

ref: https://developer.spotify.com/documentation/web-api/reference/tracks/get-track/

Из их документов API

GET https://api.spotify.com/v1/tracks/{id}

объект ответа содержит

KEY VALUE       | TYPE                   | VALUE DESCRIPTION
---
artists         | an array of simplified | The artists who performed the track. 
                | artist objects         | information about the artist.                

Artist Object

artist object (simplified)

KEY VALUE       | TYPE                   | VALUE DESCRIPTION
---
external_urls   | an external URL object | Known external URLs for this artist.
href            | string                 | A link to the Web API endpoint providing full details of the artist.
id              | string                 | The Spotify ID for the artist.
name            | string                 | The name of the artist
type            | string                 | The object type: "artist"
uri             | string                 | The Spotify URI for the artist.
...