Apelarea altor API-uri HTTP cu RESTBuilder
RESTBuilder.GET(url), .POST(url, data), .PUT, .PATCH și .DELETE construiesc o cerere. Datele unui POST se trimit ca JSON. Înlănțuie .header(name, value), .cookie(name, value), .timeout(milliseconds) și .auth(user, password) înainte de .exec(function(err, response, output) {}) (sau .promise() pentru await).
responseeste body-ul, interpretat automat când este JSONoutput.statuseste statusul HTTP, iaroutput.headersantetele răspunsuluierreste setat la erori de rețea și la statusuri HTTP de eroare
Exemplul apelează două rute ale propriei aplicații ca să ruleze oriunde; în codul tău folosește adresa serviciului real. $.hostname(path) construiește URL-ul complet al acestui server.
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 });
});
}