2016-07-20 19 views
2

我试图对YouTube Web API进行GET调用,但我无法弄清楚如何使用http.get函数传递参数。我已经使用了提琴手,并确保提出要求。我目前得到一个400错误,说我缺少参数“部分”。我如何修改我的代码以在我的请求中包含所需的参数?使用Angular 2中的参数对REST服务进行GET调用

private _url = 'https://www.googleapis.com/youtube/v3/'; 
private _key = ''; 

getPlaylistVideos(playlistId, pageToken){ 

    var url = this._url + "playlistItems"; 
    var options = { part: 'snippet', maxResults: 50, playlistId: playlistId, key: this._key, pageToken: pageToken } 

    return this.http.get(url, options); 

} 

回答

1

您需要在您的要求搜索PARAMS。我认为这会为你工作:

getPlaylistVideos(playlistId, pageToken) { 
    let url = `${this._url}playlistItems`, 
     options = { part: 'snippet', maxResults: 50, playlistId: playlistId, key: this._key, pageToken: pageToken }, 
     params = URLSearchParams(); 

    for (let key in options) params.set(key, options[key); 

    return this.http.get(url, {search: options}); 
} 

您使用set方法创建URLSearchParams你可以找到完整的文档here

0

请看看关于AngularJS &的YouTube V3 API已经问&解决问题。 See here感谢@Sandeep Sukhija

总之,对缺少的参数part,将其添加到该请求例如:part: 'snippet'

示例代码:

function getPlaylistVideos(playlistId, pageToken) { 
    // pass the page token as a parameter to the API 
    $.get('https://www.googleapis.com/youtube/v3/playlistItems', { part: 'snippet', maxResults: 50, playlistId: playlistId, key: key, pageToken: pageToken }) 
} 

如何使用部分参数

的部分参数 检索或返回资源的任何API请求的必需参数。该参数标识应包含在 API响应中的一个或多个 顶级(非嵌套)资源属性。例如,视频资源具有以下 部分:

片段contentDetails fileDetails球员processingDetails recordingDetails统计地位的建议topicDetails

+0

这应该是一个评论。 – developer033

+0

不,这是对他关于缺少“零件”的问题的回答。有点太多的信息也可以作为评论发布。 –

+0

现在这是一个答案,当我评论它只是链接。没问题:) – developer033

相关问题