使用USDA REST API

时间:2016-05-28 00:14:59

标签: javascript api meteor

无论我怎么努力,我似乎​​无法弄清楚如何使用USDA REST API。我已经采用了大约6种不同的在线教程,介绍了如何使用REST API,所有这些都不适用于这个特定的API(我确定它有点小而我错过但是我&# 39;浪费了无数个小时做/观看教程但没有成功。)

以下是其API的链接: http://api.nal.usda.gov/ndb/reports?api_key=(my

这是我在JavaScript中输入的内容:

xhr = new XMLHttpRequest();
xhr.open("GET", "http://api.nal.usda.gov/ndb/reports/", true);
console.log(xhr.status);

API说要在参数中传递你的API KEY,但这对我没有意义,因为我读过的每一个教程都没有解释如何将KEY作为参数传递...如果有人会介意花一点时间来编写访问此API所需的代码,我将非常感激。

更新我还尝试了以下JQuery方法:

$.get(
    "http://api.nal.usda.gov/ndb/reports",
    {
        "api_key": "API KEY",
        "ndbno": "01009"
    },
    function(data) {
        console.log(data);
    }
);

没有运气。

更新2:在离开JQuery示例约5分钟后,我在Chrome控制台中收到错误消息:

XMLHttpRequest无法加载http://localhost:3000 API KEY)& ndbno = 01009。 No' Access-Control-Allow-Origin'标头出现在请求的资源上。起源' https://firebase.google.com/docs/reference/ios/firebaseanalytics/interface_f_i_r_app'因此不允许访问。响应的HTTP状态代码为403。

最终更新:显然我的ISP出现了问题。需要处理的是:(

2 个答案:

答案 0 :(得分:2)

您引用的文档有一个示例请求网址:

http://api.nal.usda.gov/ndb/reports/?ndbno=01009&type=b&format=xml&api_key=DEMO_KEY

您只需要替换ndbno,type,format和api_key值(" ="之后的位)。例如,如果您的API密钥是12345,则需要更改它:

http://api.nal.usda.gov/ndb/reports/?ndbno=01009&type=b&format=xml&api_key=12345

一个完整的,虽然可怜的",实施将是:

var apiKey = "DEMO_KEY";
var ndbno = "01009";
var type = "b";
var format = "json";

var url = "http://api.nal.usda.gov/ndb/reports/?ndbno=" + ndbno + "&type=" + type + "&format=" + format + "&api_key=" + apiKey;

$.get(url, function( data ) {
    alert( "Data Loaded: " + JSON.stringify(data) );
});

答案 1 :(得分:0)

使用' DEMO_KEY'由USDA提供我可以使用以下代码粘贴到HTML文件中获取JSON结果(基于您与@BlakeH正在进行的讨论中的代码):

javac^
 -cp "C:\eclipse\selenium-2.53.0\selenium-java-2.53.0.jar;C:\eclipse\selenium-2.53.0\libs\*"^
 src\automationFramework\*.java^
 -d classes/
jar cvfe udxautomator.jar BasicTestCase classes\automationFramework\*.class
java -cp . BasicTestCase

此代码未遇到CORS问题。

在过去的24小时内,您是否有机会提交超过1000个请求?