我正在努力学习如何正确使用AJAX和RESTful API,虽然我明白了,但是像身份验证这样的事情的实际实现有点令我困惑。特别令人沮丧的是,像Last.FM或TVRage.com这样的网站上的文档都没有列出代码示例,我觉得这样可以帮助我。
如果有人特别使用Last.FM API并且可以提供一个快速的代码示例 - 对于他们方法的任何 - 我真的很感激。
根据their instructions,现在,我正在尝试对自己进行身份验证。
构建api方法签名,方法是首先按参数名称的字母顺序排列调用中发送的所有参数,然后使用
<name><value>
方案将它们连接成一个字符串。
<name><value>
计划?比如,<apikey><keyitself>
?然后我在认证时做什么,以某种方式存储一个小时的会话,然后刷新,或在每次通话时进行身份验证?我只是没有详细说明如何实际实现它......
答案 0 :(得分:8)
如果查看API文档,您将在左侧导航菜单中看到一个方法列表(让我们在此示例中使用artist.getInfo - http://www.last.fm/api/show/artist.getInfo)。
现在,为了进行调用,您需要向restful Web服务发出AJAX请求,然后返回XML或JSON响应。要对此进行测试,您可以构建查询并查看响应。
如果您尝试此链接,您将看到数据的JSON表示。如果您查看我的答案一开始提供的API链接,您也可以开始尝试一些可选参数。要解决的下一个问题是如何自己进行AJAX调用。
如果您按照本指南进行操作,它将向您展示进行AJAX调用的{j}和jQuery方法How to make an AJAX call without jQuery?。在我的示例中,我们将使用上面详述的相同参数创建POST请求方法:
$.ajax({
type : 'POST',
url : 'http://ws.audioscrobbler.com/2.0/',
data : 'method=artist.getinfo&' +
'artist=After+The+Burial&' +
'api_key=57ee3318536b23ee81d6b27e36997cde&' +
'format=json',
dataType : 'jsonp',
success : function(data) {
// Handle success code here
},
error : function(code, message){
// Handle error here
}
});
当您点击成功回调时,'data'参数表示已被解析为JavaScript对象的JSON响应。
这是我演示的一个jsfiddle,它演示了对last.fm的web服务调用的实现:
确保获得自己的API密钥,并重构成功回调比我的示例更优雅。