2013-04-22 15 views
8

İki REST API'sini birbirine bağlayan bağımsız bir uygulama yazmak için Node.js'yi kullanmak mantıklı mıdır?Bir REST API'sine bağlanmak için Node.js'yi kullanma

bir ucu bir POS olacak - Satış Noktası - Sistem

diğer barındırılan e-ticaret platformunu olacak

hizmet yapılandırması için minimal bir arayüz olacaktır. daha fazla bir şey yok.

+0

Evet, sorun yok. Node.js'yi neden bu amaçla kullanamadığınızı anlamıyorum. –

cevap

23

Evet, Node.js, harici API'lere çağrı yapmak için mükemmel şekilde uygundur. Ancak, Düğüm'deki her şey gibi, bu çağrıları yapma işlevleri, olayları temel alır, yani yanıtlanmış bir yanıtı almak yerine yanıt verisini tamponlamak gibi şeyler yapmak anlamına gelir. Örneğin

:

// get walking directions from central park to the empire state building 
var http = require("http"); 
    url = "http://maps.googleapis.com/maps/api/directions/json?origin=Central Park&destination=Empire State Building&sensor=false&mode=walking"; 

// get is a simple wrapper for request() 
// which sets the http method to GET 
var request = http.get(url, function (response) { 
    // data is streamed in chunks from the server 
    // so we have to handle the "data" event  
    var buffer = "", 
     data, 
     route; 

    response.on("data", function (chunk) { 
     buffer += chunk; 
    }); 

    response.on("end", function (err) { 
     // finished transferring data 
     // dump the raw data 
     console.log(buffer); 
     console.log("\n"); 
     data = JSON.parse(buffer); 
     route = data.routes[0]; 

     // extract the distance and time 
     console.log("Walking Distance: " + route.legs[0].distance.text); 
     console.log("Time: " + route.legs[0].duration.text); 
    }); 
}); 

Basit bir sarmalayıcı kitaplığı bulmak için mantıklı (ya da kendi yazma) bu aramaları bir çok yapım olacak eğer olabilir.

+0

Açıkladı +1 – AndrewMcLagan

+0

Düğümlü olay modeline gerçekten çok ısınıyorum. Veriler bu şekilde parçalandığında. Akım bitmeden önce manipüle etmeye başlamak mümkün mü? sırayla geliyor mu? – AndrewMcLagan

+0

Teşekkürler! Evet, veriler sırayla yayınlanır. Akışı tamamlamadan önce verileri kullanabiliyorsanız, o zamandan önce neden bununla çalışamayacağınızı anlamıyorum (henüz şahsen benim için bir kullanım vakasına sahip olmadığım halde). –

-1

Daha kolay ve kullanışlı bir araç, Unirest gibi bir API kullanıyor; URest, NPM'de

app.get('/any-route', function(req, res){ 
    unirest.get("https://rest.url.to.consume/param1/paramN") 
     .header("Any-Key", "XXXXXXXXXXXXXXXXXX") 
     .header("Accept", "text/plain") 
     .end(function (result) { 
     res.render('name-of-the-page-according-to-your-engine', { 
     layout: 'some-layout-if-you-want', 
     markup: result.body.any-property, 
    }); 

}) kullanımı çok kolay bir pakettir;);

+0

"res" tanımsız! – Kasra

+0

Yo, app.get ('/', auth.protected, işlev (req, res) { \t }); ' –

+0

kodunu düzenleyin ve güncelleyin. – Kasra

İlgili konular