环回:从模型中创建新的DTO字段



我有一个loopback2 API服务。通过在模型JSON定义文件中使某些字段成为hidden,我可以不通过RESTful层公开这些字段。

我希望能够在不公开这些属性的情况下,基于其他属性在DTO中创建要公开的新字段。

例如,假设我的模型具有字段firstnamesurname,并且我希望通过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();
});

您可以根据需要缩小远程钩子表达式的范围,只为您关心的端点提供这种行为。

最新更新