Как я могу обернуть каждый ответ API в стандартный объект ответа в SailsJS?
Я новичок в Sails и пытаюсь найти лучший / правильный метод для возврата стандартного объекта для каждого ответа API.
Контейнер, который необходим нашему интерфейсу:
{
"success": true/false,
"session": true/false,
"errors": [],
"payload": []
}
В настоящее время я переписываю действия с планом в каждом контроллере, как в этом примере (что выглядит очень, очень неправильно):
find : function( req, res ){
var id = req.param( 'id' );
Foo.findOne( { id : id } ).exec( function( err, aFoo ){
res.json(
AppSvc.jsonReply(
req,
[],
aFoo
), 200
);
});
}
И в AppSvc.js:
jsonReply : function( req, errors, data ){
return {
success : ( errors && errors.length ? false : true ),
session : ( req.session.authenticated === true ),
errors : ( errors && errors.length ? errors : [] ),
payload : ( data ? data : [] )
};
}
Кроме того, мне пришлось изменить каждыйres.json()
метод для каждого ответа по умолчанию (badRequest, notFound и т. д.). Опять же, это так неправильно.
Итак, как правильно направить все ответы API в стандартный контейнер?