通过Javascript与RESTful API进行交互?

7

首先,我知道C ++,C#,Python,一些Ruby和基本的JavaScript。无论如何,我的问题围绕如何通过Javascript与RESTful API进行交互。我还没有在各种网站上找到任何好的示例,因此我来到这里。

所以我的基本问题是:如何通过JS与RESTful API进行交互?在哪里可以找到有关如何在JS中实现OAuth的信息?我知道如何获取我的密钥等,只是不知道如何编写它们。

以下是从我的MAC终端使用curl运行的Twitter API状态更新示例:

curl -u username:password 
-d "my tweet" 
http://api.twitter.com/1/statuses/update.json

我该如何使用Javascript实现这个功能(最好使用OAuth认证)?这至少可以让我朝着正确的方向前进。
非常感谢!
3个回答

7
问题在于你需要使用AJAX来查询远程REST API,而AJAX只允许查询与页面相同域的资源。所以,对api.twitter.com的请求会失败,因为它与你的服务器不在同一个域上。
要解决这个问题,你需要编写服务器代码来向Twitter发出请求。但是,你可以创建自己的AJAX存根,直接从你的页面接受数据,然后使用客户端提供的数据在服务器端构建/发送请求到Twitter。

6

一般来说,Justin的方法是正确的,但如果您必须让客户端脚本与REST服务交互,则可以使用JsonP。这是一个包装在函数调用中的JSON数据。

请参阅此页面以了解如何执行 http://www.ibm.com/developerworks/library/wa-aj-jsonp1/


1
OAuth 1.0在JavaScript中是一个不好的想法,因为您需要公开应用程序的秘密密钥,这样做可能允许任何人冒充您的应用程序。 OAuth 1.0旨在与您控制的服务器一起使用。因此,您的用户可以将其令牌发送到您的服务器,然后您代表他们向Twitter发出请求。
但是,OAuth 2.0解决了这个问题,尽管Twitter还不支持它。
如果您确实想要OAuth 1.0,请使用我的插件:https://github.com/jpillora/jquery.rest,并进行GitHub问题中指定的更改。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接