【问题标题】:Getting data from restful API in Node (server to server) Node/Express Using Request使用请求从 Node(服务器到服务器)Node/Express 中的 RESTful API 获取数据
【发布时间】:2016-09-13 02:04:54
【问题描述】:

我正在尝试连接到位于此处的 TradeGecko API: (他们所有的例子都在 ruby​​ 中——我使用的是 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);
});

【问题讨论】:

    标签: node.js api rest express request


    【解决方案1】:

    您必须使用 ACCESS_TOKEN 发送请求

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

    【讨论】:

    • 谢谢我知道了!这两个答案对我都有很大帮助。
    【解决方案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 请求中 在如下所示的标头中发送到服务器:

    授权:承载

    您必须用您的个人 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);
          }
        })
      });
    

    【讨论】:

    • 两个答案都对我有帮助。感谢它启动并运行。
    猜你喜欢
    • 2015-12-16
    • 2012-09-24
    • 1970-01-01
    • 2019-09-30
    • 1970-01-01
    • 1970-01-01
    • 2020-01-15
    • 2022-12-04
    • 2016-08-09
    相关资源
    最近更新 更多