Andere HTTP-API's aanroepen met RESTBuilder
RESTBuilder.GET(url), .POST(url, data), .PUT, .PATCH en .DELETE bouwen een verzoek. De gegevens van een POST worden als JSON verstuurd. Koppel .header(name, value), .cookie(name, value), .timeout(milliseconds) en .auth(user, password) vóór .exec(function(err, response, output) {}) (of .promise() voor await).
responseis de body, automatisch geparsed wanneer het JSON isoutput.statusis de HTTP-status enoutput.headersde response-headerserris gezet bij netwerkfouten en bij HTTP-foutstatussen
Het voorbeeld roept twee routes van de eigen app aan zodat het overal kan draaien; gebruik in je code het adres van de echte service. $.hostname(path) bouwt de volledige URL van deze 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 });
});
}