我有一个loopback2 API服务。通过在模型JSON定义文件中使某些字段成为hidden
,我可以不通过RESTful层公开这些字段。
我希望能够在不公开这些属性的情况下,基于其他属性在DTO中创建要公开的新字段。
例如,假设我的模型具有字段firstname
和surname
,并且我希望通过REST API公开一个新的fullname
(名字+姓氏),但不公开其他两个。
有什么办法做到这一点吗?
实际上,这个问题有点傻。环回不会为您的DTO提供任何声明性的方式来提供新属性,就像当您想要隐藏一些属性,但您可以通过远程挂钩获得所需的所有灵活性时一样。
例如:
Person.afterRemote('*.find', function (ctx, user, next) {
if(ctx.result) {
ctx.result.forEach(function (result) {
result.fullname = `${result.firstname} ${result.surname}`;
delete result.firstname;
delete result.surname;
});
}
next();
});
您可以根据需要缩小远程钩子表达式的范围,只为您关心的端点提供这种行为。