logo

Make Request Node

Make Request Node

Ετικέτες: MEANNode

Όπως στα περισσότερα πράγματα στην Node και σε όλες τις web πλατφόρμες της JS έτσι και τα requests (είτε post ειτε get κοκ) ύπαρχουν πολυ τρόποι που μπορούν να γίνουν. Από αυτούς σας παρουσιάζω αυτό που με βόλεψε εμένα τουλάχιστον. (Σημ λεμε για να κάνουμε εμείς ενα request όχι να στήσουμε ένα για να μας κάνουν!)

var request = require('request');
//Set Up Req Options
    var url = 'YOUR API FULL URL';
    var req_options = {
        url: url,
        method: 'POST',
        headers: {
            'Content-Type': 'application/json',
        },
        json: DATA YOU WANT TO SEND
    };

    request(req_options, function (error, proxyResponse, body) {
        if (!error && proxyResponse.statusCode == 200) {
            //Do whatever with Body
        } else {
            //Handle the error
        }
    });

Έχουμε και λέμε λοιπόν. Χρησιμοποιούμε το πακέτο request για να κάνουμε το request μας. Το οποίο αφού το έχουμε εγκαταστήσει στα Node Modules μας (npm install) το καλούμε στο αρχείο που τρέχουμ το call μας.

Το καλό με το request είναι ότι μπορούμε να τα ρυθμίσουμε ολα μέσα σε ένα json αρχείο και με τα αυτό να τρέξουμε το request.  Βέβαια αν δεν το θέλουμε αυτο μπορούμε να σετάρουμε το request χωρίς τα δεδομένα που θέλουμε να στείλουμε (το όρισμα Json στην προκειμένη) και να το προσθέσουμε εν συνεχεία κατα το δοκούν όπως φαίνεται εδώ.

 
  request(req_options, function (error, proxyResponse, body) {
        if (!error && proxyResponse.statusCode == 200) {
             //Do whatever with Body
        } else {
            res.status(400).json({
                //Handle the error
            });
        }
    }).json(DATA YOU WANT TO SEND);

Φυσικά μπορούμε και το Callback function (το δεύτερο όρισμα του request) να το βάλουμε σε μια μεταβλητή να μη το έχουμε έτσι μέσα στη μέση. Επίσης μπορούμε να αποθηκεύσουμε το ίδιο το request σε μια μεταβλητή τύπου function και να το χρησιμοπούμε κατά το δωκούν.

Προσοχή στα header και στα data types που στέλνουμε. Υποστηρίζονται πολλά και καθένα ένα τις δικές του εντολές και ορίσματα. Πχ για form τύπου data θα χρησιμοποιήσουμε στο req_options όρισμα form και αντίστοιχα εντολή form(OUR DATA).

Στην περίπτωση που θέλετε να φτιάξετε ένα ενδιάμεσο API  όπως ήθελα εγώ μπορείτε να παίξετε και με το pipe που θα στείλει αμέσως τα δεδομένα στο δικό σας response. Δηλαδή στο παρακάτω εχώ στήσει ένα δικό μου API που χτυπάει ένα άλλο API και φαίρνει πίσω ότι επιστρέφει χωρίς να ρωτά.

 
searchSomething = function (req, res, next) {

    //Set Up Req Options
     var url = 'YOUR API FULL URL';
    var req_options = {
        url: url,
        method: 'POST',
        headers: {
            'Content-Type': 'application/json',
        }
    };
    request(req_options).json(req.body).pipe(res);
}

Οπότε πήρα το body από το δικό μου request και το έστειλα πακέτο στο άλλο και αντίστοιχα πήρα με το pipe το response από το άλλο API και το έβαλα ως res στο δικό μου. Καθαρές δουλειές 😛

2 found this helpful