Restreindre une route avec des flags
Les flags commencent par @ et se placent après l'URL. Une route ne correspond que si la requête satisfait tous ses flags ; sinon Total.js essaie la route suivante pour la même URL et répond 404 si aucune ne correspond. Flags utiles :
@jsonet@xml: le body doit être du JSON ou du XML@xhr: la requête doit être une requête AJAX (en-têtex-requested-with)@upload: le body doit êtremultipart/form-data@debuget@release: la route n'existe que dans ce mode@mobileet@robot: le client est un navigateur mobile ou un robot d'indexation
exports.install = function() {
ROUTE('POST /data/ @json', json_only);
ROUTE('POST /data/ @xml', xml_only);
// Careful: a route with flags has a lower priority than the same URL without flags
ROUTE('POST /mixed/ @json', json_only);
ROUTE('POST /mixed/', anything);
};
function json_only($) {
$.json({ handler: 'json' });
}
function xml_only($) {
$.json({ handler: 'xml' });
}
function anything($) {
$.json({ handler: 'anything' });
}Ne mélangez jamais une route avec flags et une route sans flags sur la même URL : celle sans flags est vérifiée en premier et prend toutes les requêtes, la route avec flags n'est donc jamais atteinte.