将Restangular响应转换为模型对象

时间:2015-12-29 15:36:44

标签: javascript angularjs model restangular

我们正在构建一个AngularJS应用程序并使用Restangular作为我们的REST-API。

现在我的想法是将API的响应转换为类型化的JS对象。因此,如果字段名与我们的代码逻辑不同,我们就不会过分依赖API,并且我们在前端代码中独立于命名API中的更改。但这是做到这一点的方式吗?

当我们想要回发给API时,我迷失了方向。 " restanguarlized"的所有功能。对象在新类型模型对象中丢失。如何将其转换回API?

我的方法有误吗?

但是,如果API改变了一些属性,那么固态代码怎么会破坏呢?或者,如何在不查看REST-API响应的情况下查看模型提供的属性。在我的经典编程方式中,我打开了我的Model-Class,可以查找模型对象提供的所有属性!?

由于

这里是一些简化的实现代码示例:



function TypedModel(data) {
  this.foo = data.bar;
}

var typedModel;
Restangular.one('service', 'infos').get().then(function(data) {
  typedModel = new TypedModel(data);
});




1 个答案:

答案 0 :(得分:0)

我认为你的方法没有任何问题,不。也许你已习惯了强类型语言,比如Java?我花了一些时间来调整Javascript,因为它是如此松散的类型。

我不确定这是否会有所帮助,但我已按照以下方式开始设置课程:

function TypedModel(pojo) {
    if (!TypedModel.validate(pojo)) {
        //Throw an exception if the POJO is not valid.
    }
    this.foo = pojo.foo;
    this.bar = pojo.bar;
    this.fooBar = pojo.fooBar;
}

TypedModel.validate = function(pojo) {
    return (pojo.foo && pojo.bar && pojo.fooBar);
};

这意味着我可以确切地看到我的类应具有哪些属性,如果API发生变化,那么我知道我需要更改我的类。

但我也正在转向使用Typescript,因为它使得处理模型变得更加容易。我肯定会建议调查TS。

欢迎评论:)