从节点(服务器到服务器)Node / Express使用请求中获取来自Restful API的数据
我试图连接到位于这里的TradeGecko API :(他们所有的例子都是在ruby – 我使用节点)
http://developer.tradegecko.com/
我有一个特权访问令牌,我创build了FAKE TOKEN:146e29b59e7e8861f462101f610f58168ca5edf2f307e5f7adc3314d24ee8015
如何获得所有产品的GET请求,例如: http : //developer.tradegecko.com/?ruby#list- all-products
非常感谢帮助!
假设我有这样的代码:
var express = require('express'); var request = require('request'); var app = express(); var port = process.env.PORT || 3000; var testRouter = express.Router(); myRouter.route('/testRoute') .get(function(req, res){ request('API CALL HERE??', function (error, response, body){ if(!error && response.statusCode == 200){ res.json(body); } }) }); app.use('/api', bookRouter); var myRouter = express.Router(); app.get('/', function(req, res){ res.send('Welcome to my API'); }); app.listen(port, function() { console.log('GULP is running my app on PORT: ' + port); });
如果你看看你引用的文档的结尾,你会注意到这个请求是:
GET https://api.tradegecko.com/products
这是一个RESTful API。 您需要了解如何提供访问令牌。
通常情况下 ,您添加一个头到您的请求说:
授权:承载您的令牌
…并做一个简单的GET请求。
他们的身份validation文档详细介绍了如何进行身份validation。 这是RESTful,所以我的假设是正确的。
TradeGecko使用API密钥来允许访问API。 您可以在我们的开发者门户网站上注册一个新的TradeGecko API密钥。
TradeGecko希望将API密钥包含在对服务器的所有API请求中,其头像如下所示:
授权:承载<ACCESS_TOKEN>
您必须replace您的个人API密钥。
这个堆栈溢出的答案有更多关于从nodejs执行REST请求的细节。
得到它使用这个工作:如果你想添加到您的答案为他人。
myRouter.route('/testRoute') .get(function(req, res){ request({ method: 'GET', uri: 'https://api.tradegecko.com/products', headers: {'Authorization': 'Bearer ' + 'TOKEN HERE'} }, function (error, response, body){ if(!error && response.statusCode == 200){ res.json(body); } }) });
您必须通过ACCESS_TOKEN发送请求
request({ url: "", method: "", headers: {'Authorization': 'Bearer ' + YOUR_ACCESS_TOKEN}, })