Appeler les routes API de Total.js avec API()
API(url, name, data, callback) est le côté client des endpoints ROUTE('API ...') de Total.js. Elle envoie POST url avec le body { schema: name, data: data } et appelle le callback avec la réponse. Quand le serveur répond par une erreur (par exemple de validation), le callback reçoit un tableau d'erreurs : utilisez le helper ERROR(response, success, error) pour traiter les deux cas au même endroit.
Placez l'adresse de l'endpoint dans ENV() une fois pour toutes et réutilisez-la.
NEWACTION('Math/add', {
name: 'Add two numbers',
input: '*a:Number, *b:Number',
action: function($, model) {
$.callback({ sum: model.a + model.b });
}
});exports.install = function() {
ROUTE('API /api/ +math_add --> Math/add');
};<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>jComponent</title>
<link rel="stylesheet" href="//cdn.componentator.com/spa.min@20.css" />
<script src="//cdn.componentator.com/spa.min@20.js"></script>
</head>
<body>
<p class="sum"></p>
<p class="error"></p>
<script>
ENV('api', '/api/');
API('[api]', 'math_add', { a: 20, b: 22 }, function(response) {
SET('sum', response.sum);
});
API('/api/', 'math_add', { a: 'x' }, function(response) {
ERROR(response, function(value) {
SET('failed', 'unexpected success');
}, function(errors) {
SET('failed', errors[0].name);
});
});
</script>
</body>
</html> Essayez-le dans votre navigateur
Modifiez l'exemple et exécutez-le. Il s'exécute dans un cadre isolé de votre navigateur ; rien n'est envoyé à notre serveur.
Aperçu