Κλήση άλλων HTTP API με RESTBuilder
Τα RESTBuilder.GET(url), .POST(url, data), .PUT, .PATCH και .DELETE χτίζουν ένα αίτημα. Τα δεδομένα ενός POST στέλνονται ως JSON. Αλυσιδώστε .header(name, value), .cookie(name, value), .timeout(milliseconds) και .auth(user, password) πριν από το .exec(function(err, response, output) {}) (ή .promise() για await).
- το
responseείναι το body, που αναλύεται αυτόματα όταν είναι JSON - το
output.statusείναι η κατάσταση HTTP και τοoutput.headersτα response headers - το
errορίζεται για σφάλματα δικτύου και για καταστάσεις σφάλματος HTTP
Το παράδειγμα καλεί δύο διαδρομές της δικής του εφαρμογής ώστε να τρέχει οπουδήποτε· στον δικό σας κώδικα χρησιμοποιήστε τη διεύθυνση της πραγματικής υπηρεσίας. Το $.hostname(path) χτίζει το πλήρες URL αυτού του διακομιστή.
exports.install = function() {
ROUTE('GET /api/hello/', hello);
ROUTE('POST /api/sum/', sum);
ROUTE('GET /call/', call);
};
function hello($) {
$.json({ message: 'hello', agent: $.headers['x-agent'] || null });
}
function sum($) {
$.json({ sum: $.body.a + $.body.b });
}
async function call($) {
var greeting = await RESTBuilder.GET($.hostname('/api/hello/')).header('x-agent', 'forge').timeout(5000).promise();
var total = await RESTBuilder.POST($.hostname('/api/sum/'), { a: 20, b: 22 }).promise();
RESTBuilder.GET($.hostname('/api/missing/')).exec(function(err, response, output) {
$.json({ greeting: greeting, total: total, missing: output.status });
});
}