ForgeTotal.js 5
el

Total.js 5

Κλήση άλλων HTTP API με RESTBuilder

Total.js 5 · total5@0.0.19 integrationshttprestbuilder Εκτελέστηκε με το Total.js 5

Τα 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 αυτού του διακομιστή.

controllers/service.js
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 });
	});
}