从节点(服务器到服务器)中的restful API获取数据节点/ Express使用请求

时间:2016-05-17 05:57:39

标签: node.js api rest express request

我正在尝试连接到位于此处的TradeGecko API: (他们所有的例子都是红宝石 - 我正在使用Node)

http://developer.tradegecko.com/

我有一个我创建的特权访问令牌 假秘克: 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);
});

2 个答案:

答案 0 :(得分:2)

如果您查看the documentation you cited的结尾,您会注意到请求是:

GET https://api.tradegecko.com/products

这是RESTful API。您需要了解如何提供访问令牌。

通常,您在请求中添加一个标题:

  

授权:承载您的令牌

...并做一个简单的GET请求。

Their documentation for authentication提供了有关如何进行身份验证的详细信息。它是RESTful,所以我的假设是正确的。

  

TradeGecko使用API​​密钥来允许访问API。你可以注册   我们的开发人员门户网站上新的TradeGecko API密钥。

     

TradeGecko希望API密钥能够包含在所有API请求中   在标题中显示如下所示的服务器:

     

授权:持票人< ACCESS_TOKEN>

     

您必须使用个人API密钥替换。

stack overflow answer包含有关从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);
      }
    })
  });

答案 1 :(得分:1)

您必须使用ACCESS_TOKEN

发送请求
request({
 url: "",
 method: "",
 headers: {'Authorization': 'Bearer ' + YOUR_ACCESS_TOKEN},
})