如何在NodeJs中对API进行REST调用?

时间:2017-01-17 12:01:59

标签: node.js rest api

我研究了很多,但我找不到解决方案。

我必须在Nodejs中做一个Web服务器,直到这里,好吧......但是如何进行REST调用?我是否必须使用快递?我只是不明白。我找到了很多东西,我不知道如何使用它们。 我必须对API REST进行REST调用。

例如:我的网络服务器启动(在本地主机上),它允许在Facebook上分享内容。

但我甚至不知道在哪里放置API代码。

谢谢! 附:我不是英国人所以我不能很好地表达自己

这是网络服务器代码:

var http = require('http');

var server = http.createServer(function (req, res) {
  res.end('Web Server');
})

server.listen(1337, '127.0.0.1');

console.log('Server running at http://127.0.0.1:1337/');

我知道这很容易,但我只是不明白......

要指定,赋值是“实现一个nodejs服务器,它能够对http://www.programmableweb.com/中的任何一个REST API商品进行REST调用,并显示结果”。< / p>

1 个答案:

答案 0 :(得分:0)

可以仅使用节点本机库开发Rest api。在下面的例子中,我有用户url api来开发

var http = require('http');
var url  = require('url');


var server = http.createServer(function (req, res) {

    var path = url.parse(req.url, true);
    console.log(path.pathname);
    if(path.pathname == '/customer'){
        // Send some Customer Data 

        res.writeHead(200, {'Content-Type': 'application/json'});
        res.end(JSON.stringify({
            customerName : 'abc',
            purchase : 200,
            deliverDate : new Date()
        }));
    }else if(path.pathname == '/vendor'){
        // Send some Customer Data 

        res.writeHead(200, {'Content-Type': 'application/json'});
        res.end(JSON.stringify({
            vendorName : 'abc',
            price : 1000,
            orderDate : new Date()
        }));

    }else{
        res.end('Wrong Path !!! - API not Found ');
    }


})

server.listen(1337, '127.0.0.1');

console.log('Server running at http://127.0.0.1:1337/'); 

还有其他方法,比如使用快速中间件来避免手动解析URL。

    var express = require('express');
    var app = express();
    app.get('/customer', function(req, res) {
      res.send({
            customerName : 'abc',
            purchase : 200,
            deliverDate : new Date()
        });
    });
   app.get('/vendor', function(req, res) {
      res.send({
            vendorName : 'abc',
            price : 1000,
            orderDate : new Date()
        });
    });
    app.listen(1337);
    console.log('Listening on port 1337...');