Javascript中的Freebase-MQL

Javascript中的Freebase-MQL,javascript,freebase,mql,Javascript,Freebase,Mql,freebase站点上的示例 使用 函数listAlbums(波段){//按指定波段显示相册。 var envelope={//mqlread查询信封 查询:{//MQL查询 键入:“/music/artist”//查找乐队 名称:band,//使用指定的名称 相册:[{//我们想知道有关相册的信息 name:null,//返回相册名称 发布日期:null、//和发布日期 排序:“发布日期”,//按发布日期排序 “发布类型!=”:“单曲”//不包括单曲 }] } }; var output=

freebase站点上的示例

使用


函数listAlbums(波段){//按指定波段显示相册。
var envelope={//mqlread查询信封
查询:{//MQL查询
键入:“/music/artist”//查找乐队
名称:band,//使用指定的名称
相册:[{//我们想知道有关相册的信息
name:null,//返回相册名称
发布日期:null、//和发布日期
排序:“发布日期”,//按发布日期排序
“发布类型!=”:“单曲”//不包括单曲
}]
}
};
var output=$(“#output”);//输出在这里
output.html(“相册由“+band+”);//显示标题
//调用mqlread并在完成后调用下面的函数。
//将callback=?添加到URL使jQuery执行JSONP而不是XHR。
jQuery.getJSON(“http://api.freebase.com/api/service/mqlread?callback=?",
{query:JSON.stringify(信封)},//URL参数
displayResults);//回调函数
//当我们得到MQL查询的结果时,将调用此函数
函数显示结果(响应){
如果(response.code==“/api/status/ok”&&
response.result&&response.result.album){//检查是否成功。。。
var list=$(“
    ”);//制作
      标记。 output.append(list.hide())//将其隐藏 var albums=response.result.album;//获取相册。 each(albums,function(){//循环浏览相册。 list.append($(“
    • ”).html(this.name));//为每个文件创建
    • 。 }); list.show(“normal”);//显示列表 } 否则{//失败时。。。 output.append(“未知波段:+波段);//显示消息。 } } }

这显然是不赞成的;有没有使用新API的代码示例?似乎在网上找不到太多(我仍在学习诀窍)。

新API有一些变化。您可以使用如下新API在Javascript中运行相同的查询:

<!DOCTYPE html>
<html>
<head>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
</head>
<body>
<script>
  var API_KEY = 'YOUR-API-KEY-GOES-HERE';
  var service_url = 'https://www.googleapis.com/freebase/v1/mqlread';
  var band = "The Rolling Stones";
  var query = {                         
    type: "/music/artist",        
    name: band,                   
    album: [{                     
    name:null,                
    release_date: null,        
    sort: "release_date",     
    "release_type!=":"single"  
    }]
  };
  var params = {
    'key': API_KEY,
    'query': JSON.stringify(query)
  };
  $.getJSON(service_url + '?callback=?', params, function(response) {
    $.each(response.result.album, function(i, album) {
      $('<div>', {text:album['name']}).appendTo(document.body);
    });
  });
</script>
</body>
</html>

var API_KEY='YOUR-API-KEY-go-HERE';
var服务https://www.googleapis.com/freebase/v1/mqlread';
var band=“滚石乐队”;
变量查询={
键入:“/音乐/艺术家”,
姓名:乐队,,
相册:[{
名称:空,
发布日期:空,
排序:“发布日期”,
“发布类型!=”:“单一”
}]
};
变量参数={
“键”:API_键,
“查询”:JSON.stringify(查询)
};
$.getJSON(服务\ url+'?回调=?',参数,函数(响应){
$.each(response.result.album,函数(i,album){
$('',{text:album['name']}).appendTo(document.body);
});
});

出于测试目的,只需注释掉(或删除)“键”:API_键行,就可以在不使用任何API键的情况下运行Shawn的示例@Shawn这似乎是对wiki文档的一个有用的补充。
<!DOCTYPE html>
<html>
<head>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
</head>
<body>
<script>
  var API_KEY = 'YOUR-API-KEY-GOES-HERE';
  var service_url = 'https://www.googleapis.com/freebase/v1/mqlread';
  var band = "The Rolling Stones";
  var query = {                         
    type: "/music/artist",        
    name: band,                   
    album: [{                     
    name:null,                
    release_date: null,        
    sort: "release_date",     
    "release_type!=":"single"  
    }]
  };
  var params = {
    'key': API_KEY,
    'query': JSON.stringify(query)
  };
  $.getJSON(service_url + '?callback=?', params, function(response) {
    $.each(response.result.album, function(i, album) {
      $('<div>', {text:album['name']}).appendTo(document.body);
    });
  });
</script>
</body>
</html>